说我有一个数组
var originalArray = [1,2,3,4,5,6,7]
我想显示申请
function orderToColumn (originalArray, numberofcolumn)
获取返回值
Array [ 1, 4, 7, 2, 5, undefined, 3, 6, undefined ]
关键是我希望能够以下列格式显示我的数组:
1 4 7
2 5
3 6
到目前为止我的尝试:https://jsfiddle.net/042o7rv9/
该数组可以是任意大小和numberofcolumn>=1
。
答案 0 :(得分:2)
你可以这样做。
var a = [1,2,3,4,5,6,7];
function orderToColumn(arr,col){
var len = col*Math.ceil(arr.length / col);
console.log(len);
var newArr=[];
for(var i = 0;i<col;i++){
for(var j=0;j<len/col;j++){
newArr.push(arr[j*col+i]);
}
}
return newArr;
}
var b = orderToColumn(a,3);
console.log(b); // [1, 4, 7, 2, 5, undefined, 3, 6, undefined]
答案 1 :(得分:0)
您可以按照以下方式执行功能;
function columnize(a,n){
var count = Math.ceil(a.length/n);
return a.reduce((p,c,i) => i%count === 0 ? p.concat([[c]]) : (p[p.length-1].push(c),p),[]);
}
var originalArray = [1,2,3,4,5,6,7],
result = columnize(originalArray,3);
console.log(result);