gpt4 book ai didi

javascript - 如何根据第一个值对数组进行排序?

转载 作者:行者123 更新时间:2023-11-28 10:38:11 24 4
gpt4 key购买 nike

我有一个包含字符串和数组的数组。每个字符串都与其旁边的数组相关联。例如,字符串 789 与数组 ['111A','222B','333C'] 关联。我想对字符串进行排序,同时保持数组与其绑定(bind)。

我尝试使用 sort() 方法,当我的数组中只有字符串时,该方法会进行排序,但当我添加数组时,它会返回到默认排序。

let myArry = [
'789',
['111A','222B','333C'],
'456',
['444E','555F','666G'],
'123',
['777H','888I','999J']
]

myArray.sort(function(a,b){
return a - b
})

最终我希望数据看起来像这样。

['123', ['777H', '888I','999J'],
'456', ['444E', '555F', '666G'],
'789', ['111A', '222B', '333C']]

最佳答案

您可以按一对进行分组,对它们进行排序并得到一个平面数组。

var array = ['789', ['111', '222', '333'], '456', ['444', '555', '666'], '123', ['777', '888', '999']],
result = array
.reduce((r, v, i) => {
if (i % 2) r[r.length - 1].push(v);
else r.push([v]);
return r;
}, [])
.sort(([a], [b]) => a - b)
.reduce((r, a) => r.concat(a), []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何根据第一个值对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57115717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com