问题

我正在进行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);

10-07 14:51