【发布时间】:2017-11-01 21:20:59
【问题描述】:
我想过滤与模型数组中的“模型”键匹配的项目数组对象并将它们存储在一个数组中。我的尝试确实成功了,但我对自己的努力不是很满意。有没有更好的方法?
关于如何使用 underscore.js 和 lodash 的任何建议?还是使用本机 javascript 地图和过滤器功能?
JSON 对象
{
"items": [
{
"model": "ooc0d",
"code": "2x4qr",
"price": 33
},
{
"model": "ruie9",
"code": "2f6gi",
"price": 22
},
{
"model": "aqu0d",
"code": "2f6gi",
"price": 21
},
{
"model": "ddebd",
"code": "2f6gi",
"price": 25
},
{
"model": "ddebd",
"code": "2f6gi",
"price": 29
}
],
"models": [
{
"model": "ruie9",
"year": 1998
},
{
"model": "ooc0d",
"year": 1991
},
{
"model": "aqu0d",
"year": 1994
},
{
"model": "ddebd",
"year": 1995
},
{
"model": "odq76",
"year": 1999
}
]
}
我的解决方案
const { models, items } = jsonData;
const newarray = [];
for(let i = 0; i < models.length; i++) {
for(let j = 0; j < items.length; j++) {
if(items[j].model===models[i].model) {
let obj = {
...items[j],
year: models[i].year
}
newarray.push(obj);
}
}
}
【问题讨论】:
-
在您的代码中,您可以访问
id属性,但您的 JSON 中没有 id 属性的跟踪 -
糟糕,对不起。刚刚更正
-
@created this benchmark 与我 Umair 和 Pankaj。 Pankaj 获胜 :)
标签: javascript arrays json filter nested