繁体   English   中英

Javascript JSON 创建创建一个额外的 object

[英]Javascript JSON creation creating an additional object

我正在尝试使用 Javascript 从另一个 JSON 创建一个 JSON。

这是我的代码。

 var data = [{ "Id": "123", "Name": "Abc", "Amount": 110000 }, { "Id": "567", "Name": "DEF", "Amount": 98000 }, { "Id": "345", "Name": "XYZ", "Amount": 145000 } ]; finalArray(data); function finalArray(data) { var nArray = []; var subArray = new Object(); subArray.total = 0; subArray.records = {}; subArray.size = 0; data.forEach(item => { subArray.total += item.Amount; subArray.records += item; subArray.size += 1; }); nArray.push(subArray); console.log(nArray); };

在最后的 object 中,在记录中我得到以下 output。

records: "[object Object][object Object][object Object][object Object]"

预计 output 是

records: "[object Object][object Object][object Object]"

在我的实际数据中,我在输入中有 3 条记录。

请让我知道我哪里出错了。

谢谢

这应该工作。

function finalArray(data) {
  var nArray = [];
  var subArray = new Object();
  subArray.total = 0;
  subArray.records = []; // records must be array
  subArray.size = 0;
  data.forEach(item => {

    subArray.total += item.Amount;
    subArray.records.push(item); // need to push each item to records array
    subArray.size += 1;
  });
  nArray.push(subArray);
  console.log(nArray);
};

代码有2个错误。

  1. 记录应该是一个array而不是object
  2. 您需要使用push方法将数据添加到记录中。 不是addition assignment (+=)

 var data = [{ "Id": "123", "Name": "Abc", "Amount": 110000 }, { "Id": "567", "Name": "DEF", "Amount": 98000 }, { "Id": "345", "Name": "XYZ", "Amount": 145000 } ]; finalArray(data); function finalArray(data) { var nArray = []; var subArray = new Object(); subArray.total = 0; subArray.records = []; subArray.size = 0; data.forEach(item => { subArray.total += item.Amount; subArray.records.push(item); subArray.size += 1; }); nArray.push(subArray); console.log(nArray); };

将您的 function 更改为 -

function finalArray(data) {
  var nArray = [];
  var subArray = new Object();
  subArray.total = 0;
  subArray.records=[];
  subArray.size = 0;
  data.forEach(item => {
    
    subArray.total += item.Amount;
    subArray.records += item;    
    subArray.size += 1;
  });
  nArray.push(subArray);
  console.log(nArray);
};

使用array来保存原始items 此外,您需要push Object 添加到数组中;

 var data = [{ "Id": "123", "Name": "Abc", "Amount": 110000 }, { "Id": "567", "Name": "DEF", "Amount": 98000 }, { "Id": "345", "Name": "XYZ", "Amount": 145000 } ]; finalArray(data); function finalArray(data) { // New data let nArray = {}; nArray.total = 0; nArray.size = 0; // Create an array inside nArray to hold original items nArray.records = []; data.forEach((item) => { nArray.total += item.Amount; nArray.size += 1; nArray.records.push(item); }); console.log(nArray); };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM