将对象推送到Filtered JavaScript Array

时间:2014-12-03 19:12:23

标签: javascript

鉴于此示例,如何将过滤器找到的每个结果推送到obj中,而不是为过滤器找到的每个项目重置一次?

过滤器从过滤器中获取第一个结果,并将obj [0]设置为该值。假设我有10个过滤器结果如何将值附加到obj而不是将其设置为单个值。我以为我需要使用push。

var obj = array.filter(function ( obj ) {
    return obj.name === name;
})[0];

1 个答案:

答案 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