按可变列数排序数组
Sorting array by variable number of columns
假设我有一个数组
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
你可以这样做。
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]
在功能上可以这样做;
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);
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在数组的 2/3 上调用自身的排序算法
- 数组值的排序以匹配另一个数组ES6
- 按不同项目对对象数组进行排序
- 根据Javascript中的字符串值对数组的数组进行排序
- 在不同的javascript数组中对json响应进行排序
- 对对象数组中的数组进行排序
- 按特定键对对象数组进行排序
- 使用jquery根据数组对表行进行排序
- 尝试对对象数组进行排序但拼接不是一个函数
- 对javascript中某些键的对象数组进行排序
- Javascript按数字顺序排序()数组
- Javascript排序索引链接数组
- 在jquery中对时间数组进行排序
- 如何在具有相同 ID 的 Javascript 中按排序函数对关联数组进行排序
- Javascript中的多维数组排序索引问题
- 如何在mongodb中根据数组内容的差异进行排序
- 在Javascript中对具有特定异常的对象数组进行排序
- 数组数据排序类似mysql查询
- 在小于O(n)时间内找到(排序)数组中的重复元素