JavaScript Map.groupBy()

定义和用法

Map.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";
}

// 根据数量分组
const result = Map.groupBy(fruits, myCallback);

亲自试一试

注意

原始对象和返回对象中的元素是相同的。

对任一对象的更改都会反映在另一个对象中。

Object.groupBy() 与 Map.groupBy() 的区别

Object.groupBy()Map.groupBy() 的区别在于:

Object.groupBy() 将元素分组到一个 JavaScript 对象中。

Map.groupBy() 将元素分组到一个 Map 对象中。

语法

Map.groupBy(iterable, callback)

参数

参数 描述
iterable 必需。可迭代的数组或 Map。
callback

必需。为每个元素执行的函数。

该函数应返回元素的分组名称。

返回值

类型 描述
Object 包含分组元素的 Map 对象。

浏览器支持

Map.groupBy() 是 ES2024 的特性。

自 2024 年 3 月起,所有现代浏览器均完全支持:

Chrome Edge Firefox Safari Opera
Chrome 117 Edge 117 Firefox 119 Safari 17.4 Opera 103
2023 年 9 月 2023 年 9 月 2023 年 10 月 2024 年 10 月 2023 年 5 月