簡體   English   中英

根據屬性過濾 JSON 數組

[英]Filter a JSON array based on a property

我有一個像這樣的 JSON 數組:

var records = [
  { Name: "Bob", EmployeeID: 1234, Status: "present" },
  { Name: "Jim", EmployeeID: 4432, Status: "present" },
  { Name: "Heather", EmployeeID: 4432, Status: "absent" },
]

我想根據狀態過濾數組列表(即如果Status === "present" )。

[
  { "Name": "Bob", "EmployeeID": 1234, "Status": "present" },
  { "Name": "Jim", "EmployeeID": 4432, "Status": "present" }
]

使用Array#filter僅獲取present狀態記錄。

filter()方法創建一個新array ,其中包含通過提供的 function 實現的測試的所有元素。

 var records = [{ "Name": "Bob", "EmployeeID": 1234, "Status": "present" }, { "Name": "Jim", "EmployeeID": 4432, "Status": "present" }, { "Name": "Heather", "EmployeeID": 4432, "Status": "absent" } ]; let preStatus = records.filter(({Status}) => Status === 'present') console.log(preStatus)

你可以只使用過濾方法。 它根據給定條件返回新數組。

 var records = [{"Name":"Bob", "EmployeeID":1234, "Status":"present"}, {"Name":"Jim", "EmployeeID":4432, "Status":"present"}, {"Name":"Heather", "EmployeeID":4432, "Status":"absent"}]; const output = records.filter(rec => { return rec.Status == 'present'; }); console.log(output);

我相信你在提到過濾

  let recordSorted = []
    records.map(item => if(item.Status == "present"){
    recordSorted.push(item)
    })

2.你可以簡單地做到這一點

records.map(item => item.Status === "present" ? recordSorted.push(item): continue )

3.您可以使用過濾方法從數組中過濾item

var records = [
  { Name: "Bob", EmployeeID: 1234, Status: "present" },
  { Name: "Jim", EmployeeID: 4432, Status: "present" },
  { Name: "Heather", EmployeeID: 4432, Status: "absent" },
]

let recordSorted = records.filter(item=>{item.Status ==="present"})

了解有關過濾器的更多信息

console.log(recordSorted)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM