说明
`_.chunk(array, [size=1])`
将数组(array)拆分成多个 `size` 长度的区块,并将这些区块组成一个新数组。
如果`array` 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
举例:
_.chunk(['a', 'b', 'c', 'd'], 2);
_.chunk(['a', 'b', 'c', 'd'], 3);
实现:
function myChunk(array = [], size = 1) {
// 判断当前传入的是否为数组
if (!Array.isArray(array)) return array
// 判断当前传入的是否是一个“安全整数”
if (!Number.isSafeInteger(size)) {
size = 1
}
const result = []
while (array.length) {
const chunk = array.splice(0, size)
result.push(chunk)
}
return result
}
console.log(myChunk([1, 2, 3, 4, 5], 2))
// [ [ 1, 2 ], [ 3, 4 ], [ 5 ] ]
总结:这里用到的知识点为:splice 函数改变原数组并且返回切割的数据以数组形式