2025年4月7日 星期一

初探 Object.groupBy()

 初探 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()