我有数组:[1,2,3,4,5,6,7]
我想实现:[[1,2],[3,4],[5,6],[7]]
我在想Array.map,但它似乎无法映射到一个元素什么?
我有(使用Underscorejs):
@H_
403_8@arr.map(function(el,idx,arr) {
if (idx%2 != 0) return null;
if (idx == arr.length-1) return [el];
return [el,arr[idx+1]]
}).compact();
这还是有点丑陋.如何实现转换(没有显式循环)?
使用模运算符减少数组:
@H_
403_8@function chunk(arr,n) {
return arr.reduce(function (p,c,i) {
if (i % n === 0) p.push([]);
p[p.length - 1].push(c);
return p;
},[]);
}
chunk(arr,2); // [[1,[7]]
DEMO