javascript - 在 Javascript 对象数组中,如果该元素本身是对象数组,我如何通过名称/ID 定位特定数组元素?

标签 javascript

如果我将即时创建的对象(包括另一个内部对象数组)推送到一个数组,我如何才能将对象仅添加到特定对象的数组。以评论为例:

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/

相关文章:

javascript - Kendo Grid 相当于 onEditComplete

javascript - 如何让 Dojo 中的荷兰语言环境正常工作?

javascript - 如何使用如图所示的相同表创建 url

javascript - 在简单的函数循环中设置 style.display 时的奇怪行为

javascript - 突出显示 div 中的元素并将其设置在其他元素之上

javascript - 用 Jest 测试 setTimeout 上的毫秒参数

javascript - 如何使用 :hover stay in hover state on click? 制作一个 div

javascript - 将 Div 设置为占用父级的剩余高度,其中的 sibling 有 float 的子级

javascript - 将隐藏字段值传递给 javascript (href)

javascript - 停止在 JSTree 中的 Ajax 加载/延迟加载中加载节点