初探 Map.groupBy()
前言
在先前的 初探 Object.groupBy() 使用過 Object.groupBy(),Map 裡也有個 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"; } // let result = Map.groupBy( fruits , myCallback ); console.log( result.get('low') ); // [[object Object] { // name: "oranges", // quantity: 200 // }, [object Object] { // name: "kiwi", // quantity: 150 // }] console.log( result.get('ok') ); // [[object Object] { // name: "apples", // quantity: 300 // }, [object Object] { // name: "bananas", // quantity: 500 // }]
Map.groupBy() 的功能和 Object.groupBy() 是一樣的!差別在於輸出的結果,Object.groupBy() 輸出的是 Object ,而 Map.groupBy() 輸出的是 Map ,範例在喚起 Map.groupBy() 時的參數和使用 Object.groupBy() 的時候一樣,在得到結果要取出時要使用 Map.get() 來取得內容,因為輸出的結果並不是 Object ,而是 Map ,如此可以看到結果和上次 初探 Object.groupBy() 的範例一樣的結果。
參考資料
[ developer.mozilla.org ] Map.groupBy()
沒有留言:
張貼留言