首页 » 性感的程序员 » JS计算二维数组中数据之和

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”值。