Javascript 使用REQL将数组转换为对象

Javascript 使用REQL将数组转换为对象,javascript,rethinkdb,reql,Javascript,Rethinkdb,Reql,我正在寻找一种最简洁的方法来将数组转换为对象,同时提取用作每个结果键的字段 这就是我找到的解决方案,我想知道是否有更简单的方法 r.table('product').fold({}, function(products, product) { return products.merge( r.object( product('id').coerceTo('string'), product.without('id') ) ); }) 谢谢 实例

我正在寻找一种最简洁的方法来将数组转换为对象,同时提取用作每个结果键的字段

这就是我找到的解决方案,我想知道是否有更简单的方法

r.table('product').fold({}, function(products, product) {
  return products.merge(
    r.object(
      product('id').coerceTo('string'),
      product.without('id')
    )
  );
})
谢谢

实例
我不是专家,但是AFAIK,直接在表上使用fold将阻止后续命令被并行化:

因此,如果我没有弄错的话,如果顺序不重要,那么最好选择减少而不是折叠,例如

table.mapfunctionrow{ 返回r.object 行'id'。强制为'string',行。不带'id' } .还原功能左,右{ 返回左。右 }
// Input:
[{ id: 0, price: 19.99 }, { id: 1, price: 24.99 }]

// Output:
{ "0": { price: 19.99 }, "1": { price: 24.99 } }