2016-06-09 62 views
0

考慮以下數組,其中包含對象的數組:如何按屬性過濾對象數組?

[ 
    [ 
    {color: blue, size: 3}, 
    {color: red, size: 1}, 
    {color: blue, size: 4} 
    ], 
    [ 
    {color: blue, size: 4}, 
    {color: green, size: 9}, 
    {color: gren, size: 3} 
    ] 
] 

我怎麼能過濾數據,所以,我只能與具有藍色的proprty對象離開了,就像這樣:

[ 
    [ 
    {color: blue, size: 3}, 
    {color: blue, size: 4} 
    ], 
    [ 
    {color: blue, size: 4} 
    ] 
] 

它在D3js的上下文中,但這可能只是一個普通的JavaScript問題。

+1

你熟悉的['filter'](https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Reference/Global_Objects/Array/filter)方法? –

+0

強烈關聯:http://stackoverflow.com/a/11657379/1026459 –

回答

2

這裏有一種方法:

outputArray = inputArray.map(function(a) { 
       return a.filter(function(el) { return el.color === "blue"; }); 
       }); 

.map()方法創建一個新的數組,其元素會打電話給你提供原始數組中的每個元素的函數的結果。 (如果要覆蓋原始數組,只需將結果分配給相同的變量而不是新的數組。)

.filter()方法創建一個新數組,其中只包含通過測試的原始元素你通過它的功能。

延伸閱讀:

0

你可以使用if-else語句來遍歷數組,使用循環的藍色。

相關問題