初探 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()
沒有留言:
張貼留言