初探 Object.groupBy()
前言
JavaScript 2024 新增了 Object.groupBy() ,在此把學習的過程做個紀錄。
內容
範例如下
const fruits = [ {name:"apples", quantity:300}, {name:"bananas", quantity:500}, {name:"oranges", quantity:200}, {name:"kiwi", quantity:150} ]; function myCallback({ quantity }) { return quantity > 200 ? "ok" : "low"; } const result = Object.groupBy(fruits, myCallback); console.log( result.low ); // [[object Object] { // name: "oranges", // quantity: 200 // }, [object Object] { // name: "kiwi", // quantity: 150 // }] console.log( result.ok ); // [[object Object] { // name: "apples", // quantity: 300 // }, [object Object] { // name: "bananas", // quantity: 500 // }]
Object.groupBy() 的功能是在同質的物件陣列中做分類,範例中會對 fruits 做出兩種分類,分別是 ok 與 low ,在喚起 Object.groupBy() 時,輸入物件陣列,並同時輸入 Function ,這個 Function 會用來決定如何分類,範例依據 quantity 的數值是否大於 200 來分類,注意看該 Function 的引數 quantity 要用 {} 用以表明是屬性,而 Function 的回傳值是要被分類的群組,是用字串來表達,Object.groupBy() 的結果也就是 result ,可以看到裡面的 low 與 ok 會存有符合分類的結果。
參考資料
[ www.w3schools.com ] Object.groupBy()
[ developer.mozilla.org ] Object.groupBy()