首页 > 解决方案 > 如何按索引将数组拆分为三个数组?

问题描述

我有一个包含 9 个元素的数组(也许更多)。我需要按索引分成三个数组。

const array = [{id: 0}, {id: 1}, ..., {id: 8}];

我想收到 3 个这样的数组:

const array0 = [{id: 0}, {id: 3}, {id: 6}];
const array1 = [{id: 1}, {id: 4}, {id: 7}];
const array2 = [{id: 2}, {id: 5}, {id: 8}];

标签: javascriptalgorithmsplit

解决方案


您可以将索引的剩余部分设为三个,并为每三个元素处理一次贵妇人组。

如有必要,进行解构赋值,例如

[array0, array1, array2] = result;

const
    array = [{ id: 0 }, { id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }, { id: 6 }, { id: 7 }, { id: 8 }],
    result = array.reduce((r, o, i) => ((r[i % 3] = r[i % 3] || []).push(o), r), []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }


推荐阅读