我们有这种类型的数组,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];
因为这个数组非常庞大,最有效的方法是什么?
答案 0 :(得分:0)
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;
})
});