我有一个看起来像这样的数组
var testArray = ['name1:13', 'name2:15', 'name3:13'];
我想按冒号右侧的数字对数组进行排序。
到目前为止我有这个:
var converted = testArray.map(
function (item) {
return item.split(':').map(
function (num) {
return parseInt(num);
});
})
alert(converted)
var sorted = converted.sort(function (a, b) { return a[1] - b[1] })
alert(sorted);
这按正确的顺序对它们进行排序,但我不确定如何传递每个字符串的第一部分,即冒号左侧的部分。
现在它返回:NAN,13,NAN,13,NAN,15
最佳答案
创建一个辅助函数来访问拆分结果的[1]
st 索引,然后在排序回调中,为两者调用该函数并返回差值:
var testArray = ['name1:13', 'name2:15', 'name3:13'];
const getVal = str => str.split(':')[1];
testArray.sort((a, b) => getVal(a) - getVal(b));
console.log(testArray);
关于javascript - 使用 Split 函数对 Javascript 数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60255783/