搜尋

首頁  >  問答  >  主體

根據物件屬性過濾數組

我有一個物件數組,如下所示:

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。

P粉331849987P粉331849987418 天前458

全部回覆(2)我來回復

  • P粉771233336
  • P粉489081732

    P粉4890817322024-01-30 09:39:20

    您可以使用陣列的 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]);
        }
    }

    回覆
    0
  • 取消回覆