可以说我有一个object []数组和一个数字数组。

let objects = [
{name: apple, id:1},
{name: banana, id:2},
{name: orange, id:5}
];

let numbers = [5, 1];


我想过滤对象数组,因此仅保留与数字匹配的id,并且应该更改顺序以匹配数字数组。

result should be [{name: orange, id:5} , {name: apple, id:1} ]


我可以使用javascript对象原型吗?还是可以使用lodash等第三方工具?

我已经尝试过使用以下代码,但是它保留了原始列表的顺序:

result = object.filter(p => {
    return numbers.includes(parseInt(p.id));
});

最佳答案

您可以通过找到对象来映射所需的物品。



var objects = [{ name: 'apple', id: 1 }, { name: 'banana', id: 2 }, { name: 'orange', id: 5 }],
    numbers = [5, 1],
    result = numbers.map(id => objects.find(o => o.id === id));

console.log(result);

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

10-04 22:03
查看更多