[英]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个错误。
array
而不是object
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.