Javascript 下划线是否具有将嵌套对象数组提取到新数组的功能?
我有: 我想将Javascript 下划线是否具有将嵌套对象数组提取到新数组的功能?,javascript,arrays,underscore.js,Javascript,Arrays,Underscore.js,我有: 我想将listForExtract中的对象提取到一个新数组中,就像使用下划线传递ID的函数一样: 类似于:\uu0.extractedNestedArrayFrom(myArray,'listForExtract',{'id':2}) 您可以将两种方法结合起来 var myArray=[{ “id”:1, “listForExtract”:[{ “价值1”:“1A”, “值2”:“2A” }, { “价值1”:“1B”, “值2”:“2B” }, ] }, { “id”:2, “lis
listForExtract
中的对象提取到一个新数组中,就像使用下划线传递ID的函数一样:
类似于:\uu0.extractedNestedArrayFrom(myArray,'listForExtract',{'id':2})
您可以将两种方法结合起来
var myArray=[{
“id”:1,
“listForExtract”:[{
“价值1”:“1A”,
“值2”:“2A”
}, {
“价值1”:“1B”,
“值2”:“2B”
}, ]
},
{
“id”:2,
“listForExtract”:[{
“值1”:“1C”,
“值2”:“2C”
}, {
“值1”:“1D”,
“值2”:“2D”
}, ]
}];
var result=u.map(u.where(myArray{
“id”:2
}),功能(elem){
返回元素listForExtract
});
控制台日志(结果)代码>
你甚至不需要下划线
下面的代码应该适合您
[{
"value1": "1A",
"value2": "2A"
}, {
"value1": "1B",
"value2": "2B"
}]
您可以使用,并且:
其中,查找数组中id为2的所有项,并提取listForExtract
。然后使用“展平”将结果展平为一个数组Lucas。。你可以接受下面任何你觉得有用的答案。我为Finish添加了一条注释。有没有办法返回数组而不是另一个数组中的数组?我的错。在那里添加了一个flatte
来展平数组。有没有方法返回数组而不是在另一个数组中的数组?是的,请尝试这个u.findWhere(myArray,{'id':2})。ListForExtract有没有方法返回数组而不是在另一个数组中的数组?@Lucas。。无论你从下划线尝试什么。。它将以一个过滤器和一个映射结束。。所以最好用这个。。
[{
"value1": "1A",
"value2": "2A"
}, {
"value1": "1B",
"value2": "2B"
}]
myArray.filter(function(){
return o.id==2
}).map(function(o){
return o.listForExtract
});
var result = _.chain(data)
.where({id:2})
.pluck('listForExtract')
.flatten()
.value()