使用reduce进行分组
const arr = [1, "apple", true, 3.14, "orange", false, 42];
const grouped = arr.reduce((acc, val) => {
const type = typeof val;
if (!acc[type]) {
acc[type] = [];
}
acc[type].push(val);
return acc;
}, {});
console.log(grouped);
上面的代码会将数组 arr 中的元素按照类型分组,并将结果存储在 grouped 变量中。输出结果如下:
结果
const arr = [1, "apple", true, 3.14, "orange", false, 42];
const grouped = arr.reduce((acc, val) => {
const type = typeof val;
if (!acc[type]) {
acc[type] = [];
}
acc[type].push(val);
return acc;
}, {});
console.log(grouped);
在 reduce() 方法中,第一个参数是一个累加器函数,它会对每个元素执行一次。在这个累加器函数中,我们首先使用 typeof 运算符获取元素的类型,并根据类型来创建或获取对应类型的数组。然后将当前元素添加到对应类型的数组中,最后返回累加器对象 acc。最终,reduce() 方法会将所有元素都处理完毕,并返回最终的累加器对象,其中包含了按照类型分组的数组。