我希望JavaScript对象位于另一个JavaScript对象中,如下所示:
Issues:
- {"ID" : "1", "Name" : "Missing Documentation", "Notes" : "Issue1 Notes"}
- {"ID" : "2", "Name" : "Software Bug", "Notes" : "Issue2 Notes, blah, blah"}
- {"ID" : "2", "Name" : "System Not Ready", "Notes" : "Issue3 Notes, etc"}
// etc...
因此,我希望“Issues”保存这些JavaScript对象中的每一个,这样我就可以只说Issues[0].Name或Issues[2].ID等。
我已经创建了外部Issues JavaScript对象:
var jsonIssues = {};
我需要在其中添加一个JavaScript对象,但不知道如何添加。我希望能够说:
Issues<code here>.Name = "Missing Documentation";
Issues<code here>.ID = "1";
Issues<code here>.Notes = "Notes, notes notes";
有什么办法吗?谢谢。
**UPDATE:**根据给出的答案,声明一个数组,并根据需要推送JavaScript对象:
var jsonArray_Issues = new Array();
jsonArray_Issues.push( { "ID" : id, "Name" : name, "Notes" : notes } );
感谢您的回复。
7条答案
按热度按时间nc1teljy1#
6ju8rftf2#
由于我的第一个对象是原生JavaScript对象(像对象列表一样使用),
push
在我的场景中不起作用,但我通过添加新键解决了这个问题,如下所示:除此之外,了解如何删除之前插入的相同对象可能会很有用:
希望它能像帮助我一样帮助别人。
pgvzfuti3#
如果要向数组中添加,则可以执行以下操作
或者你可以使用其他家伙发布的推送技术,这也很好。
w8f9ii694#
//递归地将对象2合并到对象1中
//将对象2合并到对象1中
https://api.jquery.com/jquery.extend/
nbewdwxp5#
如果它不是一个对象数组,你可以这样做:
结果:
您还可以添加对象:
结果:
wmtdaxz36#
ht4b089n7#
如果你在第一个obj中有属性,你必须向它添加你的obj,那么Object.assign()会擦除它。
为了避免这种损失,我在下面写了一个函数。注意,它通过引用复制嵌套对象。
首先,你应该把所有你想添加到你的对象中的对象添加到一个arr中。你可以通过arr.push()很容易地做到这一点。然后使用Fn。