arr = ["1","2"];
$.each(arr,function(i,obj){
sum += parseInt(obj);
});
console.log(sum);
我預計總和爲3,但結果爲12?我以爲parseInt已經完成了這項工作?這裏有什麼問題?parseInt在迴路中工作不正常
arr = ["1","2"];
$.each(arr,function(i,obj){
sum += parseInt(obj);
});
console.log(sum);
我預計總和爲3,但結果爲12?我以爲parseInt已經完成了這項工作?這裏有什麼問題?parseInt在迴路中工作不正常
行爲不同的是你如何初始化和
if var sum = 0; -> result will be as expected i.e. 3
if var sum = ""; -> result will be 12 as coming because sum is string
這裏的工作代碼
var arr = ["1","2"];
var sum=0;
$.each(arr,function(i,obj){
sum += parseInt(obj);
});
alert(sum);
@Alice許你的代碼是不是其實不正確。這是同時另外
sum += parseInt(obj);
對象轉換成整數,但隨後再次到該字符串得到治療爲空字符串,所以這裏總和爲字符串類型的問題,因爲在你的代碼和變量在此之前的某個地方。所以我們得到的是1和2的連接,如你所指出的,它是「12」。如果初始化和爲零,那就好了。
我已經運行你的代碼,並得到NaN作爲輸出,因爲我沒有初始化總和。看起來你正在將它初始化爲「」,因爲你輸出的是「12」。
使用JavaScript:
function sumArray(array) {
var sum = 0;
for (var i = 0; i < array.length; i++) {
sum += parseInt(array[i]);
}
return sum;
}
var sum = sumArray(['1', '2', 3]);
使用JavaScript Array.reduce方法:
var array = ['1', '2', 3];
var sum = array.reduce(function(a, b) { return a + parseInt(b); }, 0);
它是concatinating 1和2 –
您的代碼按預期工作,https://jsbin.com/qedofehebo/edit? HTML,JS,控制檯 –