如果我将即时创建的对象(包括另一个内部对象数组)推送到一个数组,我如何才能将对象仅添加到特定对象的数组。以评论为例:
reviews.push({ 'reviewer' : 'John',
'review' : 'This movie was the greatest',
'comments' : { 'commenter' : 'Dave',
'comment' : 'The review by John was too short'}
});
'comments' 是对象的内部数组。
如果在稍后阶段我只想通过父名称/ID 将对象添加到特定对象的“评论”中,这可能吗?如果是这样,我将如何着手去做?
使用示例,如果只有 1 条评论有多个评论,并且评论是在稍后阶段出现的,我如何将新评论添加到评论对象中的 'comments' 数组?
我猜我需要一个评论 ID 来阻止重复等,但除此之外,我什至不确定在语法上该怎么做,或者它是否可能。
提前致谢。
最佳答案
首先,评论应该是一个数组,并且您有一个对象。
然后像这样进行:
reviews[someIndex].comments.push( { commenter: 'john', comment: 'hello!!'});
即
如果您需要对第一个帖子添加评论,请执行以下操作:
reviews[0].comments.push( { /* your comment */ } );
编辑:我总是使用 get() 来检索索引,但我似乎找不到太多关于它的文档,所以我假设(虽然我不确定) [i] 是一种更标准的做事方式,因此我更改了示例。然而,推送评论的概念并没有改变。
编辑 2:OP 想要以数组中的特定元素为目标。我会按照描述使用 Array.prototype.indexOf here您可以在其中找到适用于也不支持 indexOf 的浏览器的解决方案。
关于javascript - 在 Javascript 对象数组中,如果该元素本身是对象数组,我如何通过名称/ID 定位特定数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18269890/