如何在一个巨大的多维数组中找到每列的最大长度

How to find the largest length for every column in a huge multidimensional Array

本文关键字:数组 巨大 一个      更新时间:2023-09-26

我们有这种类型的数组,max表示列中单词的长度。

var data = [
   ["1111", "44"],
   ["222", "55555"  ],
   ["33", "666"  ],
...
];
"1111".length > "222".length > "33".length,
"55555".length > "666".length > "44".length
var max -> [4,5];

因为这个数组真的很大,所以最有效的方法是什么?

var data = [
   ['ABC', 'ABCD', 'ABCDEF', 'abcd', 'a', 'Abcdef', 'Abcderfg', 'A', 'ABC'],
   ['ABCD', 'ABC', 'ABCDEF', 'abc', 'AB', 'Abcdef', 'abcd', 'ABC', 'ABC'],
   ['Abcderfg', 'ABC', 'ABCDEFGH', 'abc', 'A', 'ABCDEF', 'abcd', 'AB', 'ABC']
];

var _maxs = [];  
var lenghtOfRow = data[0].length, _maxs = [];
for (var i=0; i<lenghtOfRow; i++) 
    _maxs.push(0);

data.forEach(function (record) {
   record.forEach(function (vl, indx) {
     if (vl.length > _maxs[indx])
         _maxs[indx] = vl.length;
   })
});
console.log(_maxs);

有没有更有效的方法?

更新:

_maxs = [];
data.forEach(function (record) {
   record.forEach(function (vl, indx) {
      if (vl.length > (_maxs[indx]|| 0))
          _maxs[indx] = vl.length;
    })
});