2014-12-03 64 views
-1

鑑於此示例,如何將過濾器找到的每個結果推送到obj中,而不是爲過濾器找到的每個項目重置一次?將對象推入過濾的JavaScript數組

過濾器抓取過濾器的第一個結果並將obj [0]設置爲該值。假設我有來自過濾器的10個結果,我如何將值附加到obj而不是將其設置爲單個值。我想我會需要使用推。

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

你能描述的問題嗎? – 2014-12-03 19:15:54

+2

通過不只是在過濾結果中的第一項? – 2014-12-03 19:16:54

+0

我添加了更多描述。 – GoBeavs 2014-12-03 19:25:25

回答

1

您應該簡單地從過濾結果中刪除零索引;

var obj = array.filter(function (obj) { 
    return obj.name === name; 
}); //now obj has all the filtered items 

「的過濾器()方法創建與通過由提供的功能實現的測試中所有元素的數組」。 MDN Docs

,如果要追加/串聯filetered結果到另一個現有陣列,那麼你正在尋找.concat功能

obj.concat(array.filter(function (obj) { 
    return obj.name === name; 
})); //obj is an existing array 
+0

嗯,我感到很傻,但謝謝你! – GoBeavs 2014-12-03 19:36:47

+0

我很高興這有助於 – renatoargh 2014-12-03 19:39:21