【发布时间】:2021-09-13 16:23:15
【问题描述】:
我有一个二维数组:
var array1 = [
["Jasper", "Diesel", "Grid", 2.7],
["Delta", "Solar", "Grid", 10],
["Alpha", "Wind", "Grid", 20]
]
我想使用第一列对array1 进行排序:
var sortingArray = ["Alpha","Jasper","Delta]
所以它应该是这样的:
var sortedArray = [
["Alpha", "Wind", "Grid", 20],
["Jasper", "Diesel", "Grid", 2.7],
["Delta", "Solar", "Grid", 10]
]
我已经尝试过使用下面的sort 函数,但它根本不会改变数组。我不需要指定要排序的位置吗?
array1.sort(function (a, b) {
return sortingArray.indexOf(a) - sortingArray.indexOf(b);
})
更新:自从发布以来,我已经解决了这个问题。正如我所怀疑的,我确实需要提供我想要排序的位置。解决办法是:
array1.sort(function (a, b) {
return sortingArray.indexOf(a[0) - sortingArray.indexOf(b[0]);
})
【问题讨论】:
-
a和b是数组。你想要它们的第一个元素 ->a[0]/b[0] -
“更新:自从发布以来,我已经解决了这个问题......” - 然后将其添加为实际答案,或删除问题。
标签: javascript arrays sorting