chunk 【数组切割】
描述
将一个数组分割成大小的组。如果数组不能被平均分配,那么最后一块将是剩下的元素
# 1.示例
import { chunk } from 'sf-utils2'
chunk(['a', 'b', 'c', 'd'], 2) // [['a', 'b'], ['c', 'd']]
chunk(['a', 'b', 'c', 'd'], 3) // [['a', 'b', 'c'], ['d']]
1
2
3
2
3
# 2.入参说明
| 参数 | 说明 | 类型 | 是否必填 |
|---|---|---|---|
| val | 原数组 | Array | 是 |
| size | 切割数组的每组大小 | Number | -------- |
# 3.源码
import isArray from '@/base/isArray'
/**
* 将一个数组分割成大小的组。如果数组不能被平均分配,那么最后一块将是剩下的元素
*
* @param {Array} array 数组
* @param {Number} size 每组大小
* @return {Array}
*/
function chunk(array, size) {
let index
let result = []
let arrLen = size >> 0 || 1
if (isArray(array)) {
if (arrLen >= 0 && array.length > arrLen) {
index = 0
while (index < array.length) {
result.push(array.slice(index, index + arrLen))
index += arrLen
}
} else {
result = array.length ? [array] : array
}
}
return result
}
export default chunk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
上次更新: 2023/06/24, 19:35:48