javascript - 如何更新对象数组?

标签 javascript rethinkdb

例如,

{
  id:"monday",
  names:[
    {one:"white", two:"pink"},
    {uno:"blanco", dos:"rosado"}
  ]
}

如何将white更改为black
到目前为止,我得到了这个:

r.db.table.get('monday').update({
  names: r.row("names").nth(0)
})

其中指定了names的第0个索引,但不确定如何进一步指定one字段然后更改它。

最佳答案

到目前为止你所拥有的是非常正确的,但是你将 names 替换为它的第一个子对象(我想你已经看到了那个结果)。

您只需要使用 merge 来更改子对象,并使用 changeAt on names 来放置更改后的子对象在数组中,就像这样:

r.db.table.get('monday').update({
  names: r.row('names').changeAt(0, r.row('names').nth(0).merge({one: 'black'}))
})

希望这对您有所帮助!

关于javascript - 如何更新对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39965833/

相关文章:

javascript - 如何使用javascript设置div标签的高度和宽度?

javascript - Jquery跨度:contains doesn't work

rethinkdb - 动态构建 RethinkDB 过滤器

python - 当使用据称是线程安全的数据库时,我是否需要同步自己的线程?

node.js - 使用 Hapi、MongoDb、NodeJS 和 AngularJS 创建实时项目

javascript - 我如何在悬停时设置 SVG <use> 元素的样式?

javascript - 模糊 testcafe 中的输入字段

JavaScript循环神秘地更新字符串的值

node.js - Rethinkdb 更改提要仅返回更改

Angular 2 : removeAll() in RethinkDB with Horizon API