Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下划线是否具有将嵌套对象数组提取到新数组的功能?_Javascript_Arrays_Underscore.js - Fatal编程技术网

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()