Javascript 使用lodash过滤缺少的阵列对象
在angular 4应用程序中,我有以下数组:Javascript 使用lodash过滤缺少的阵列对象,javascript,underscore.js,lodash,Javascript,Underscore.js,Lodash,在angular 4应用程序中,我有以下数组: let sampleArray1 = [ { "name":"Raman", "prdList":[ { "p_code":"20", "crtList":[ { "c_code":"087" } ] } ] }, { "name":"Laxman", "prdL
let sampleArray1 = [
{
"name":"Raman",
"prdList":[
{
"p_code":"20",
"crtList":[
{
"c_code":"087"
}
]
}
]
},
{
"name":"Laxman",
"prdList":[
{
"p_code":"10"
}
]
},
{
"name":"raj",
"prdList":[
{
"p_code":"202"
}
]
},
{
"name":"raghav",
"prdList":[
{
"p_code":"30",
"crtList":[
{
"c_code":"97"
}
]
}
]
}
]
在此数组中,某些对象缺少crtList
。我需要过滤掉所有这样的对象,并且需要一个数组,这个数组必须并且应该有crtList
因此,我的结果sampleArray2应具有以下结果:
[
{
"name":"Raman",
"prdList":[
{
"p_code":"20",
"crtList":[
{
"c_code":"087"
}
]
}
]
},
{
"name":"raghav",
"prdList":[
{
"p_code":"30",
"crtList":[
{
"c_code":"97"
}
]
}
]
}
]
如何使用lodash实现这一点?实际上,要获得sampleArray2,您不需要lodash。一个简单的
Array.prototype.filter
就足够了:
let sampleArray1=[
{
“姓名”:“拉曼”,
“prdList”:[
{
“p_代码”:“20”,
“crtList”:[
{
“c_代码”:“087”
}
]
}
]
},
{
“姓名”:“拉克斯曼”,
“prdList”:[
{
“p_代码”:“10”
}
]
},
{
“名称”:“raj”,
“prdList”:[
{
“p_代码”:“202”
}
]
},
{
“名称”:“raghav”,
“prdList”:[
{
“p_代码”:“30”,
“crtList”:[
{
“c_代码”:“97”
}
]
}
]
}
];
让结果=采样阵列1.过滤器(函数(x){
返回hasCrtList(x.prdList);
});
函数hasCrtList(prdList){
用于(prdList中的var i){
if(prdList[i].crtList){
返回true;
}
}
返回false;
}
控制台日志(结果)代码>我知道这有点太晚了,但我认为它对其他开发人员很有用。使用Lodash只需一行代码就可以轻松实现这一点
\u.差异与(完整阵列对象、星下阵列对象、等质量)
此函数将返回不在SubstarrayofObjects
中的缺少的对象数组。希望能有所帮助。如果您希望能够在不寻求帮助的情况下自己进行此类操作,@evolutionxbox非常有用的链接。我在同一个地方自学了数据转换和函数JS编程。