如何在JavaScript中对数组进行排序,确保一个元素位于顶部?

ale*_*lex 2 javascript sorting

我有一系列的URL,我希望当前的URL成为最多的成员,其余的按字母顺序排列.所述links阵列中的字母顺序升序开始关闭.

links阵列看起来像这样...

var links = [
    'http://example.com',
    'http://example.net',
    'http://stackoverflow.com'
];
Run Code Online (Sandbox Code Playgroud)

但我目前的网址可能是http://stackoverflow.com/questions.这应该匹配上面的第二个成员.

实现这一目标的最佳方法是什么?

谢谢

Ivo*_*zel 6

为什么不这么简单呢?

  1. 从数组中删除当前URL,例如 Array.splice(Array.indexOf(url), 1)
  2. 按字母顺序排序数组
  3. 用于Array.unshift()添加当前URL

减少检查,只需简单的拼接和不移位.

更新

如果您需要匹配当前域.

  1. 使用您自己的比较函数对数组进行排序
  2. 如果当前项目A匹配url,则返回-1以使其冒泡
  3. 如果项目B匹配,则返回0以使其保持不变
  4. 如果A或B,或者A和B都不匹配url,只需返回正常的比较来对它们进行排序

这是未经测试的,但理论上它应该有效.