2017-06-02 131 views
2

是否可以通過多個值過濾對象數組?通過多個屬性和值過濾對象數組

例如下面的例子中,我可以通過term_ids 5和6來過濾它,並同時輸入汽車嗎?

[ 
    { 
     "id":1, 
     "term_id":5, 
     "type":"car" 
    }, 
    { 
     "id":2, 
     "term_id":3, 
     "type":"bike" 
    }, 
    { 
     "id":3, 
     "term_id":6, 
     "type":"car" 
    } 
] 

當然,如果它更容易使用庫,

回答

4

您可以用普通的js filter()Array.filter

var data = [{ 
 
    "id": 1, 
 
    "term_id": 5, 
 
    "type": "car" 
 
    }, 
 
    { 
 
    "id": 2, 
 
    "term_id": 3, 
 
    "type": "bike" 
 
    }, 
 
    { 
 
    "id": 3, 
 
    "term_id": 6, 
 
    "type": "car" 
 
    } 
 
]; 
 

 
var result = data.filter(function(v, i) { 
 
    return ((v["term_id"] == 5 || v["term_id"] == 6) && v.type == "car"); 
 
}) 
 

 
console.log(result)

+1

謝謝!其他人同時發佈了相同的答案! :) – BarryWalsh

1

爲此,您可以做到這一點,利用&&來測試這兩個條件。

var data = [{"id":1,"term_id":5,"type":"car"},{"id":2,"term_id":3,"type":"bike"},{"id":3,"term_id":6,"type":"car"}]; 
 

 
var result = data.filter(function(e) { 
 
    return [5, 6].includes(e.term_id) && e.type == 'car' 
 
}); 
 

 
console.log(result);

+0

不錯!我正在嘗試過濾器,但不知道它可能是這樣做的!謝謝! – BarryWalsh