标签:... 索引 class apply map das style turn 分组
lodash的_.chunk函数可以将数组按照数量分成若干组,
例如:
const data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
const groupByNum = 3;
会分成
[ [1,2,3], [4,5,6], [7,8,9], [10,11] ]
下面是一种 map + slice 的写法
const result = Array.apply(null, { length: Math.ceil(data.length / groupByNum) }).map((x, i) => { return data.slice(i * groupByNum, (i + 1) * groupByNum); });
写法分析:
1. 首先使用了 Array.apply(null, {length: xxxx}) 来生成一个指定长度的数组,这里注意
new Array(length) 生成的是 [undefined x length],是一个长度为length的数组,元素未被赋值,与[undefined, undefined, ...] length个undefined的数组并不相同。
Array.apply(null, {length: xxxx}) 生成的是length个undefined的数组,可以使用map
new Array(length).map 是不能正常运行的,可以使用fill,new Array(length).fill().map 可以得到预期结果
2. apply后面的参数可以是一个类数组,甚至一个只包含length属性的对象
3. 生成数组之后,slice按照索引切割,返回数组作为一项
出处:https://segmentfault.com/a/1190000007464770
标签:... 索引 class apply map das style turn 分组
原文地址:https://www.cnblogs.com/mengff/p/9772305.html