And*_*rew 0 html javascript sorting split
我有一个看起来像这样的数组
var testArray = ['name1:13', 'name2:15', 'name3:13'];
Run Code Online (Sandbox Code Playgroud)
我想按冒号右侧的数字对数组进行排序。
到目前为止,我有这个:
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);
Run Code Online (Sandbox Code Playgroud)
这以正确的顺序对它们进行排序,但我不确定如何传递每个字符串的第一部分,即冒号左侧的部分。
现在它返回: 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);Run Code Online (Sandbox Code Playgroud)