问题
我正在进行AJAX调用以获取数据并使用for循环遍历一系列项目。我已经到了用bids[i].Bids
拥有所有数字的地步,但是我想使用reduce()
对所有值求和
我已经尝试了下面的代码段,但是当它们ie. 0, 50, 500, 250, 500, 25
不在数组中时,它们并没有显示所有数字console.log()
,因为它们出现在单独的行中?
scripts.js
/*-------------------------------------
STEP ONE: PLACE BID
--------------------------------------*/
$.ajax({
url: "https://sheetsu.com/apis/4a8eceba",
method: "GET",
dataType: "json"
}).then(function(spreadsheet) {
/*-------------------------------------
SUM BIDS IN ARRAY
--------------------------------------*/
var bids = spreadsheet.result;
for (i = 0; i < bids.length; i++) {
var allBids = bids[i].Bids; // List of all the bids
console.log(allBids);
}
观察documentation,我看到了将数组的所有值求和的示例。
var total = [0, 1, 2, 3].reduce(function(a, b) {
return a + b;
});
// total == 6
最佳答案
由于您有一个对象数组,因此您需要修改reduce函数以汇总单个对象的Bids
属性:
var bids = spreadsheet.result;
var total = bids.reduce(function(prev, curr) {
return prev + curr.Bids;
}, 0);