# chunk

_chunk(array, [size=1])

将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。

# 参数

  • array (Array): 需要处理的数组
  • [size=1] (number): 每个数组区块的长度

# 返回

  • (Array): 返回一个包含拆分区块的新数组(注:相当于一个二维数组)。

# 实现

const _chunk = function (array, size = 1) {
    const length = array == null ? 0 : array.length;
    if (!length || size < 1) return [];

    const len = Math.ceil(length / size);
    const result = new Array(len);
    let index = -1;

    while (++index < len) {
        const start = size * index;
        result[index] = array.slice(start, size + start)
    }
    return result;
}

# 测试

const arr = ['a', 'b', 'c', 'd']
_chunk(arr, 2);
// => [['a', 'b'], ['c', 'd']]
 
_chunk(arr, 3);
// => [['a', 'b', 'c'], ['d']]
上次更新于: 3/23/2022, 10:11:04 AM