JavaScript 中的 groupBy
方法是 ECMAScript 2021 官方引入的标准库的一项宝贵补充。它简化了基于指定键或函数对数组元素进行分组的过程。以下是它的语法、参数、返回值以及一些示例的概述:
array.groupBy(keyFn, [mapFn])
keyFn
:接受一个元素作为参数并返回用于分组的键的函数。mapFn
(可选):接受一个元素作为参数并返回存储在键下的转换值的函数。groupBy
方法返回一个新的 Map
对象,其中键是应用于每个元素的键函数的唯一值,而值是包含原始数组中相应元素的数组。
const people = [
{ name: "John", age: 30 },
{ name: "Jane", age: 25 },
{ name: "Peter", age: 30 },
];
const groupedByAge = people.groupBy(person => person.age);
console.log(groupedByAge);
// 输出:
// {
// 30: [{ name: "John", age: 30 }, { name: "Peter", age: 30 }],
// 25: [{ name: "Jane", age: 25 }],
// }
const products = [
{ name: "Apple", price: 1.5 },
{ name: "Banana", price: 0.8 },
{ name: "Orange", price: 1.2 },
];
const groupedByPrice = products.groupBy(
product => product.price,
product => product.name
);
console.log(groupedByPrice);
// 输出:
// {
// "1.5": ["Apple"],
// "0.8": ["Banana"],
// "1.2": ["Orange"],
// }
groupBy
的优势groupBy
提供了更简洁、可读性更强的方式来实现相同的结果。groupBy
对于大型数据集而言可能比手动方法更高效。groupBy
方法相对较新,尚未被所有浏览器完全支持。然而,它在现代浏览器中得到广泛支持,并且可以在较旧的环境中轻松进行 polyfill。
我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。