如何以角度将数组推送到 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 数组?
如何将 JSON 对象推送到 postgresql 中 jsonb 列中的数组