需要将const a1= [1,11,2,22,3,33];
变成const b1= [[1,11],[2,22],[3,33]];
将一维的数组变成一个二维的数组,最简单高效的办法是什么?
需要将const a1= [1,11,2,22,3,33];
变成const b1= [[1,11],[2,22],[3,33]];
将一维的数组变成一个二维的数组,最简单高效的办法是什么?
最简单是直接使用 lodash.chunk
。
也可以实现一个简单的 chunk
:
const chunk = (arr, size) => arr.reduce((acc, item) => {
let lastIndex = acc.length - 1
let last = acc[lastIndex];
if(!last || last.length === size) {
last = []
lastIndex++
}
last.push(item)
acc.splice(lastIndex, 1, last)
return acc
}, [])
console.log(chunk([1, 11, 2, 22, 3, 33], 2))
var a1= [1,11,2,22,3,33];
var arr = [];
for(var i = 0, len = a1.length; i< len; i++){
arr.push([a1[i], a1[++i]]);
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
比较简洁,要分割其他大小子数组只要将数字2替换成要分割的子数组数量即可
也可以像楼上直接封装成方法