可以说我有一个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; }