计算javascript es5中数组的特定位置
我有一个二维数组。我想计算每个索引位置值的总和计算javascript es5中数组的特定位置,javascript,arrays,mapreduce,sum,ecmascript-5,Javascript,Arrays,Mapreduce,Sum,Ecmascript 5,我有一个二维数组。我想计算每个索引位置值的总和 var arr = [['abc',2,5,'xyz'],['def',7,11,'mno'],['ghi',23,12,'pqr'],['hij',66,90,'uvw']] 我想计算每个阵列的第二和第三个位置,并想得到一个新的阵列 var newArr = [total, (2+7+23+66), (5+11+12+90), (2+7+23+66+5+11+12+90)] newArr = [total, 98, 118 , 216 ]
var arr = [['abc',2,5,'xyz'],['def',7,11,'mno'],['ghi',23,12,'pqr'],['hij',66,90,'uvw']]
我想计算每个阵列的第二和第三个位置,并想得到一个新的阵列
var newArr = [total, (2+7+23+66), (5+11+12+90), (2+7+23+66+5+11+12+90)]
newArr = [total, 98, 118 , 216 ]
只需对内部数组进行
forEach
,提取所需值并将其相加:
var arr=['abc',2,5,'xyz',['def',7,11,'mno',['ghi',23,12,'pqr',['hij',66,90,'uvw'];
var sumElms={};
arr.forEach(函数(arr){
arr.forEach(函数(elm,i){
sumElms[i]=(sumElms[i]| | 0)+elm;
});
});
var newArr=['total',sumElms[1],sumElms[2],sumElms[1]+sumElms[2]];
控制台日志(newArr)代码>您可以使用reduce在O(n)中完成此操作
var arr = [['abc',2,5,'xyz'],['def',7,11,'mno'],['ghi',23,12,'pqr'],['hij',66,90,'uvw']]
var sums = arr.reduce(function(result, row, i){
result[1] += row[1];
result[2] += row[2];
return result
}, ['total', 0, 0])
sums[3] = sums[2] + sums[1]
console.log(sums) // ["total", 98, 118, 216]
对于一个forEach,不需要使用多个for循环(n)
什么是总数
?如果你想做,就去做,但是你试过什么吗?
var arr = [['abc',2,5,'xyz'],['def',7,11,'mno'],['ghi',23,12,'pqr'],['hij',66,90,'uvw']];
var ff =0;
var ss =0;
arr.forEach(function(val){
ff += val[1]
ss += val[2]
})
console.log(ff, ss, ff+ss)