我正在尝试过滤一个对象数组,其中的过滤器是另一个整数数组,这些整数数组是第一个数组属性值。我已经成功地实现了它,但我不确定这是否是最好的方法。由于我是 JavaScript 的初学者,我希望能得到任何建议和改进意见。
items.json
文件包含一个对象,其中有一个对象数组。我想要过滤所有对象(在该数组中),这些对象具有与 itemsids
数组上的 "ids" 相等的 id
。
代码:
const itemsall = require('./items.json');
let itemsids = [1, 403, 3];
let filtereditems = [];
itemsids.forEach(id => {
itemsall.items.forEach(item => {
if (id === item.id) {
filtereditems.push(item);
}
});
});
items.json(其中的一小部分)
{
"items": [
{
"id": 0,
"name": "Egg",
"img": "http://www.serebii.net/pokemongo/items/egg.png"
},
{
"id": 1,
"name": "Pokeball",
"img": "http://www.serebii.net/pokemongo/items/20pokeballs.png"
},
{
"id": 2,
"name": "Greatball",
"img": "http://www.serebii.net/pokemongo/items/greatball.png"
}
]
}
输出:(预期)
[
{
"id": 0,
"name": "Egg",
"img": "http://www.serebii.net/pokemongo/items/egg.png"
},
{
"id": 403,
"name": "Cool Incense",
"img": "http://www.serebii.net/pokemongo/items/incense.png"
},
{
"id": 3,
"name": "Ultraball",
"img": "http://www.serebii.net/pokemongo/items/ultraball.png"
}
]
谢谢!