javascript - 使用特殊字符 javaScript 对数组进行排序

标签 javascript arrays sorting

我有以下数组。我怎样才能正确排序?我尝试了以下方法:

var array = ["1000:2", "101:234", "102", "101:11", "11", "12"];
array.sort(function(a, b) {
  return  a.localeCompare(b)
})
console.log(array)

但它没有给出正确的输出。排序后应产生:11、12、101:11、101:234、102、1000:2。预先感谢您!

最佳答案

您可以对参数调用 parseInt ,这将仅采用参数的初始数字部分(删除 : 及其后面的任何内容(如果存在):

var array = ["1000:2", "101:234", "102", "11", "12"];
array.sort((a, b) => parseInt(a) - parseInt(b))
console.log(array)

如果您打算将 . 视为小数,则将 : 替换为 .,然后减去以找出差异:

var array = ["1000:2", "101:234", "102", "11", "12"];
array.sort((a, b) => a.replace(':', '.') - b.replace(':', '.'))
console.log(array)

关于javascript - 使用特殊字符 javaScript 对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60144617/

相关文章:

从文本文件创建数组并用 C 对其进行组织

javascript - 在 Jquery 中为文本和日历控件生成 ID

javascript - 我可以让 Chrome 扩展程序作为网页的一部分而不是弹出窗口打开吗?

javascript - 将HTML插入文档主体时挂起

javascript - 我怎样才能把这段代码变成一个函数? (数组到文本字段)

arrays - 从由任意两个或多个连续自然数相乘形成的排序数组中查找第 N 个数字

javascript - 是否可以阻止 jqGrid 行被选择和/或突出显示?

javascript - 在 JavaScript 数组中更新现有变量

mysql - 按 Soundex(或类似)排序 `Closeness`

python - 如何解决函数的问题,该函数应该只将 0 移动到列表末尾,但也会移动 False 值?