js reduce分组
时间: 2023-07-17 19:07:56 浏览: 53
如果你想要使用 `reduce` 方法来进行数组分组,可以使用累加器函数来构建一个包含分组的对象。下面是一个示例代码:
```javascript
function groupArrayByCondition(arr, condition) {
return arr.reduce((groupedArray, element) => {
const key = condition(element);
if (!groupedArray[key]) {
groupedArray[key] = [];
}
groupedArray[key].push(element);
return groupedArray;
}, {});
}
// 示例用法
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const evenOddGroups = groupArrayByCondition(numbers, (num) => {
return num % 2 === 0 ? 'even' : 'odd';
});
console.log(evenOddGroups);
```
在这个示例中,我们定义了一个名为 `groupArrayByCondition` 的函数,它接受两个参数:要分组的数组 `arr` 和一个用于判断分组条件的函数 `condition`。我们使用 `reduce` 方法对数组进行迭代,并在累加器函数中构建包含分组的对象 `groupedArray`。
在累加器函数中,我们使用 `condition` 函数来获得元素的分组条件,并将元素添加到相应的分组中。如果分组不存在,则在 `groupedArray` 中创建一个新的空数组用于该分组。
最后,我们返回构建好的 `groupedArray` 对象作为 `reduce` 方法的最终结果。
在示例用法中,我们创建了一个包含数字的数组 `numbers`。然后,我们使用 `groupArrayByCondition` 函数将数字根据奇偶性进行分组,并将结果存储在 `evenOddGroups` 变量中。最后,我们输出 `evenOddGroups`,看看分组的结果。
希望这个示例对你有帮助!如果你还有其他问题,请随时提问。