鉴于此示例,如何将过滤器找到的每个结果推送到obj中,而不是为过滤器找到的每个项目重置一次?
过滤器从过滤器中获取第一个结果,并将obj [0]设置为该值。假设我有10个过滤器结果如何将值附加到obj而不是将其设置为单个值。我以为我需要使用push。
var obj = array.filter(function ( obj ) {
return obj.name === name;
})[0];
答案 0 :(得分:1)
您应该只是从过滤结果中删除零索引;
var obj = array.filter(function ( obj ) {
return obj.name === name;
}); //now obj has all the filtered items
“filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。” MDN Docs
但是如果你想将文件化结果附加/连接到另一个现有数组,那么你正在寻找.concat
函数
obj.concat(array.filter(function ( obj ) {
return obj.name === name;
})); //obj is an existing array