我有一个网格,我想将所有值提取到一个对象中。但是它似乎只返回最后一个值,我不知道如何解决这个问题。

function item_details(){
  var gridDataArray = $('#itemGrid').data('kendoGrid').dataSource.data();
  for ( var i=0; i < gridDataArray.length; i++ ) {
    var items = {
      ["itemID_" + i]: gridDataArray[i]['itemID'],
      ["itemQty_" + i]: gridDataArray[i]['itemQuantity'],
      ["itemPrice_" + i]: gridDataArray[i]['itemPrice']
    };
  };

  console.log(items);
  return items;
}

最佳答案

我们需要在for循环之前声明该数组,然后将对象推入其中以存储所有对象。

function item_details(){
      var gridDataArray = $('#itemGrid').data('kendoGrid').dataSource.data();
    var items =[];
      for ( var i=0; i < gridDataArray.length; i++ ) {
         items.push( {
          ["itemID_" + i]: gridDataArray[i]['itemID'],
          ["itemQty_" + i]: gridDataArray[i]['itemQuantity'],
          ["itemPrice_" + i]: gridDataArray[i]['itemPrice']
        })
      }

      console.log(items);
      return items;
    }

09-13 09:10