如何将数组以角度方式推送到JSON对象

时间:2018-05-31 10:25:54

标签: javascript json angular typescript

我有一个像下面的obj

 foreach (var item in json.c)
 {
     dgGridFromJson.Columns.Add(item, item);
 }

以下是一些测试用例:

  1. 测试用例 - >成功

    let obj = {staff_changes: []};
    
  2. 测试用例 - >失败

    for (let i = 0; i < 4; i++) {
     obj.staff_changes.push({
      id: 'staff'+i
     });
    }
    
  3. 在测试用例2中,我尝试使用名称&#39; newStaff&#39;即使它不存在于对象中。

    在控制台obj中有4个项目正在显示但是&#39; newStaff&#39;并没有推动对象。

3 个答案:

答案 0 :(得分:0)

  

您应该将newStaff定义为数组变量来推送数据。而且你也错过了在数组对象中定义key名称。

试试这个

&#13;
&#13;
let obj = {staff_changes: []};
let newStaff=[];
for (let i = 0; i < 4; i++) {
 newStaff.push({id: 'staff' +i});
 obj.staff_changes.push({
  id: i,
  newStaff: newStaff
 });
}
console.log(obj);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在测试用例2中找不到

newStaff变量,在newStaff循环中声明for

let obj = {staff_changes: []};

for (let i = 0; i < 4; i++) {
let newStaff=[];
 obj.staff_changes.push({
  id: i,
  newStaff:newStaff.push({
   id: 'staff'+i
  });

 });
}

console.log(obj);

答案 2 :(得分:0)

你需要这段代码 -

for (let i = 0; i < 4; i++) {
 obj.staff_changes.push({
  id: i,
  key: {
   id: 'staff'+i
  }

 });
}