2016-02-05 17 views
6

Mam tablicę obiektów, coś w następujący sposób:Filtr tablicę w oparciu o właściwości obiektu

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" } 
]; 

I mam randkę, na przykład „22-02-2016”. Jak mogę uzyskać tablicę ze wszystkimi obiektami, która data jest taka sama jak podana data? Tak więc w tym przykładzie chciałbym uzyskać zdarzenia B i D.

+0

Szukaj 'array filter' – Tushar

+0

Wystarczy naprawić go ... –

+0

Albo ten: [JavaScript: Jak filtrować tablicy obiekt na podstawie atrybutów] (http://stackoverflow.com/q/2722159/ 218196) ... proszę użyć wyszukiwania przed zadaniem nowego pytania. –

Odpowiedz

12

Można używać tablicy parametru tablica filter() funkcję:

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

var filtered = events.filter(filter_dates); 

Sposób filter_dates() można samodzielnych, jak w tym przykładzie do ponownego wykorzystania, czy może to być wstawiane jako anonimowy sposób - całkowicie twoim wyborem =]

szybkie/łatwy alternatywą jest tylko prosta pętla:

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

Użytkownik Array.prototype.filter() jak następuje :.

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