【发布时间】:2020-03-07 03:13:59
【问题描述】:
我有一个如下所示的数组:
cPrefs = [0:{ id: 5, name: "Sixth thing" },
1:{ id: 3, name: "Fourth thing" },
2:{ id: 4, name: "Fifth thing" },
3:{ id: 0, name: "First thing" },
4:{ id: 2, name: "Third thing" },
5:{ id: 1, name: "Second thing" }]
我还有另一个排序数组,如下所示:
cOrder = ["1", "3", "2", "5"]
我需要将第一个数组按第二个数组(具有 id)排序,并将未识别的对象留在最后(以任何顺序)。所以正确的最终排序可能如下所示:
[0:{ id: 1, name: "Second thing" },
1:{ id: 3, name: "Fourth thing" },
2:{ id: 2, name: "Third thing" },
3:{ id: 5, name: "Sixth thing" },
4:{ id: 0, name: "First thing" },
5:{ id: 4, name: "Fifth thing" }]
我不确定实现这一点的最佳方法。我试过了
const output = cOrder.map(i => cPrefs[i].id)
但它会抛出我的其他值,我想我可以循环并重建数组,但我很好奇是否有更有效的方法。
【问题讨论】:
-
您是否考虑过
sort()而不是map()? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
这个问题漏掉了multidimensional部分
标签: javascript arrays