【发布时间】:2018-10-02 01:05:41
【问题描述】:
我有两个数组,一个包含一些项目,另一个包含这些项目的 排序 id,如下所示:
const items = [
{ id: 1, label: 'foo' },
{ id: 2, label: 'bar' },
{ id: 3, label: 'lorem' },
{ id: 4, label: 'ipsum' },
]
const sortedItemIds = [4, 3, 2, 1]
我想要另一个包含按 id 排序的项目的数组,如下所示:
const sortedItems = [
{ id: 4, label: 'ipsum' },
{ id: 3, label: 'lorem' },
{ id: 2, label: 'bar' },
{ id: 1, label: 'foo' },
]
请注意,顺序可能不是什么,不是asc 或desc
我编写了这段代码,工作得很好:
let sortedItems = []
sortedItemIds.map((itemId, index) => {
items.map(item) => {
if (item.id === itemId) {
sortedItems[index] = item
}
}
})
由于嵌套的 Array.map() 函数,我觉得我可能会遇到大量项目的问题
对于这种情况有更好的方法/最佳实践吗?
【问题讨论】:
-
.map()调用都没有返回任何内容,因此它们不是完成任务的正确工具
标签: javascript arrays sorting optimization