我有以下数组。我怎样才能正确排序?我尝试了以下方法:
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/