javascript - 使用 Split 函数对 Javascript 数组进行排序

标签 javascript html sorting split

我有一个看起来像这样的数组

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/

相关文章:

javascript - Javafx WebEngine 读取安全 cookie

html - 如何让Safari和IE下载图片而不是在新页面打开?

html - 使用 div 的固定高度创建带有 flex 方向列的自动新行

php - WordPress 永久链接重写用于在 URL 中使用父项和子项层次结构的自定义分类和帖子类型

mongodb:建模用户定义的排序顺序

javascript - 使用 Lodash/Javascript 过滤嵌套数组

javascript - Cloudkit.JS 中按时间戳对记录进行排序

javascript - Canvas - 翻转一半图像

javascript - 搜索和复选框上的 Angular 过滤器

javascript - React setState 不重新渲染