PHP*_*ser 2 javascript arrays sum
我有一个由 ajax 获取的 php json_encode 对象。我想做的是对这个数组求和。这是我到目前为止所做的:
var json = $.parseJSON(data);
var tot = new Array();
for (var i = 0; i < json.length; ++i) {
tot.push(json[i].final_total);
$('table tbody').append("<tr><td>" + json[i].order_id + "</td><td>" + json[i].final_total + "</td></tr>");
}
Run Code Online (Sandbox Code Playgroud)
现在我想对这个数组求和。我试过这个:
var sum = tot.reduce(function(pv, cv) { return pv + cv; }, 0);
$("#total").html( sum );
Run Code Online (Sandbox Code Playgroud)
但结果是:
09.748.529.129.129.119.59.79.89.79.89.79.79.79.79.79.79719.248.59.79 ......
Run Code Online (Sandbox Code Playgroud)
我也试过:
myFunction(tot);
function getSum(total, num) {
return total + num;
}
function myFunction(item) {
document.getElementById("total").innerHTML = item.reduce(getSum);
}
Run Code Online (Sandbox Code Playgroud)
但我在上面得到了相同的结果(数字彼此相邻)。
我也试过这个:
var tot = 0;
for (var i = 0; i < json.length; ++i) {
tot += json[i].final_total);
$('table tbody').append("<tr><td>" + json[i].order_id + "</td><td>" + json[i].final_total + "</td></tr>");
}
$("#total").html( tot );
Run Code Online (Sandbox Code Playgroud)
但我在上面得到了相同的结果(数字彼此相邻)。
那么在javascript中对数组求和的正确方法是什么?
您必须使用parseInt(如果数字是Integers),parseFloat(如果它们是Floats)或Number(如果不确定)将它们明确解释为数字,例如:
sum = tot.reduce((a, n) => (a + Number(n)), 0);
Run Code Online (Sandbox Code Playgroud)