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

Posted

技术标签:

【中文标题】如何以角度将数组推送到 JSON 对象【英文标题】:How to push array to JSON object in angular 【发布时间】:2018-11-10 08:04:37 【问题描述】:

我有一个像下面这样的 obj

let obj = staff_changes: [];

这里有一些测试用例:

    测试用例 --> 成功

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

    测试用例 --> 失败

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

在测试用例 2 中,我试图推送一个名为“newStaff”的数组,即使它不在 obj 中。

在控制台中显示 4 个项目的 obj,但 'newStaff' 没有推送到 obj。

【问题讨论】:

请发布您的预期输出 什么是newStaff,它在哪里? 在输出中仅添加了“id”字段,但未添加“newstaff”数组 【参考方案1】:

newStaff 变量未在测试用例 2 中找到,在 for 循环中声明 newStaff

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);

【讨论】:

最好在 for 循环之外声明 newStaff,因为这样每次循环执行时都会创建新变量 @Pardeep Jain 没错,你是对的,但是如果我们在 for 循环之外声明 newStaff,那么它应该在 for 循环中初始化,否则这个变量包含旧值,所以我在里面声明它for循环 是的,但是使用你的代码它总是会清空你的数组,那么每次推入空数组的逻辑是什么? 是的,在这种情况下,它每次都会清空,但假设他/她需要在下一行代码中将任何东西推入 for 循环,所以在这种情况下我认为这将是有意义的跨度> 如果您认为这个答案有帮助,请点赞,谢谢【参考方案2】:

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

试试这个

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);

【讨论】:

【参考方案3】:

你需要这段代码-

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

 );

【讨论】:

以上是关于如何以角度将数组推送到 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

postgresql 函数 - 如何将新的 json 对象推送到 json 数组?

React JS将项目推送到数组以获取列表

无法使用猫鼬推送到阵列

如何将 JSON 对象推送到 postgresql 中 jsonb 列中的数组

将 JSON 对象推送到 localStorage 中的数组

JavaScript 推送到数组