JS计算二维数组中数据之和
先贴出一个例子的完整代码:
var array = new Array(["1.2","1.3","1.5","1.7"],["2.1","2.3","2.4"]);
var sum = new Array();
for (var i=0;i<array.length;i++){
sum[i] = 0;
}
for (var count1=0;count1<array.length;count1++){
for (var count2=0;count2<array[count1].length;count2++){
sum[count1] += parseFloat(array[count1][count2]);
}
}
console.log(sum);
接下来简单说一下计算中容易忽视的问题:
1.未将sum数组元素的值初始化
若没有代码:`for (var i=0;i<array.length;i++){
sum[i] = 0;
}`
FireBug的控制台会提示 `detailed error: ReferenceError: sum is not defined
sum[count1] += parseFloat(arraycount1);`
因为sum[count1]没有初始值。
2.未将arraycount1中的元素转化为浮点型
若没有用 parseFloat将arraycount1转化为浮点型,则计算结果会是一个一维数组["01.21.31.51.7", "02.12.32.4"]。这是因为JS 的加号在数值之间是加法运算,字符串之间是字串连接。 sum[count1] += (array[count1][count2]);
其中的“+”是后者。
3.未统一变量类型
若没有统一变量类型,当运算无法返回正确的数值时,就会返回“NaN”值。