javascript - 转动控制台中的数字/打印

标签 javascript angularjs arrays

我以这种形式在控制台中获取数据

0:(8) [70, 61, 74, 79, 76, 63, 51, 51]
1:(4) [64, 84, 84, 66]
2:(2) [79, 69]
3:(3) [77, 100, 98]

我想像这样在控制台中打印我的数据:

0:(4) [70, 64, 79,  77]
1:(4) [61, 84, 69, 100]
2:(4) [74, 84,  0,   0]
3:(4) [79, 66, 98,   0]
4:(4) [76,  0,  0,   0]
5:(4) [63,  0,  0,   0]
6:(4) [51,  0,  0,   0]
7:(4) [51,  0,  0,   0]

通过这两个函数,我得到行中的最大数字,并用 0 填充空列,但我想像我编写的示例中那样显示数据。

function fillWithZeros(arr, length) {
for (var i = 0; i < length; i++) {
    if (arr[i] == null) {
        arr[i] = 0;
    }
}

return arr;
};
function findMaxEvents(item){
var maxNumEvents = 0;
for (var i = 0; i < item.length; i++){
    if (item[i] > maxNumEvents){
        maxNumEvents = item[i];
    }
}

return maxNumEvents;
}

最佳答案

我希望您实际上是在寻找转置现有数组。 感谢Transposing a 2D-array in JavaScript. .

得到的答案和你的有点不一样。希望这有助于尝试找到实现目标的正确方法。

var array = [[70, 61, 74, 79, 76, 63, 51, 51], 
[64, 84, 84, 66], 
[79, 69], 
[77, 100, 98]];

var arrayWithMaxlen = array.map(function(a){return a.length;}).indexOf(Math.max.apply(Math, array.map(function(a){return a.length;})));
console.log("arrayWithMaxlen : " +arrayWithMaxlen); //gets index of array with max length

var newArray = array[arrayWithMaxlen].map(function(col, i) { 
  return array.map(function(row) { 
    if(row[i]!=undefined)return row[i];
    else return 0;
  })
});

console.log(newArray);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 转动控制台中的数字/打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46726423/

相关文章:

Javascript - 单击按钮后代码停止工作

javascript - ng-options 作为指令参数

javascript - 如何将 $scope 中的值传递到 AngularJS 中的内部 Controller ?

javascript - 如何更新 k-ng-model(也就是像 ng-model 一样的双向绑定(bind))

创建一个动态字符串数组,该数组将在填满时缩放

java - 在java中编写一个连续的 'for'循环

c# - 反序列化 json 对象数组,其中包含 json 对象

javascript - 删除在 keydown 上输入的字母会删除数字吗?

javascript - 异步/等待 for 循环 | await 只在 async 函数中有效

jquery - 为什么我的上一个/下一个按钮不适用于此 Bootstrap 轮播?