var arr = [[7,50],[7,60],[8,40]];
如何合并这个数组成为这样的结果?[[7,110],[8,40]];
让我们说如果我有超过数百个由数组包装的较小数组
我建议您使用映射来存储结果而不是数组.这是一个O(n)解决方案:
var arr = [[7,50], [7,60], [8,40]];
function merge_array(arr) {
var map = {};
for (var i = 0;i<arr.length;i++) {
if (arr[i][0] in map) {
map[arr[i][0]] += arr[i][1];
} else {
map[arr[i][0]] = arr[i][1];
}
}
return map;
}
Run Code Online (Sandbox Code Playgroud)
如果您将数组作为输出设置为死,则可以转换它.
归档时间: |
|
查看次数: |
229 次 |
最近记录: |