2016-02-05 179 views
6

我有對象的數組的數組,東西:篩選基於對象屬性

var events = [ 
    { date: "18-02-2016", name: "event A" }, 
    { date: "22-02-2016", name: "event B" }, 
    { date: "19-02-2016", name: "event C" }, 
    { date: "22-02-2016", name: "event D" } 
]; 

和我有一個日期,例如「22-02-2016」。我怎樣才能得到一個數組與所有對象的日期是相同的給定的日期?因此,在這個例子中,我會得到事件B和D.

+0

搜索'陣列filter' – Tushar

+0

只是固定它... –

+0

或者這一個:使用Javascript:如何篩選基於屬性的對象數組(http://stackoverflow.com/q/2722159/ 218196)...請在提出新問題之前使用搜索。 –

回答

12

你可以使用數組的filter()功能:

function filter_dates(event) { 
    return event.date == "22-02-2016"; 
} 

var filtered = events.filter(filter_dates); 

filter_dates()方法可以是獨立的,如本例中被重用,也可能被內聯爲匿名方法 - 完全你的選擇=]

快速/很不錯的選擇僅僅是一個簡單的循環:

var filtered = []; 
for (var i = 0; i < events.length; i++) { 
    if (events[i].date == "22-02-2016") { 
     filtered.push(events[i]); 
    } 
} 
5

用戶Array.prototype.filter()如下:

var filteredEvents = events.filter(function(event){ 
    return event.date == '22-02-2016'; 
});