动态访问对象字段

Dynamically access object field

我正在重构Vuex,我有一个共同的动作如:

 deleteFromList ({commit}, {list = '', type = '', listPlural = '', data = {}}) {
  db.rel.find(list, data).then(doc => {
    return db.rel.del(list, doc.rooms[0])
  })
}

如果 list 设置为 room,它 return 是一个响应 doc.rooms。所以一个包含房间数组的对象。

在这种情况下,listPlural 参数将以 rooms 的值传递。

如何 return doc.rooms[0] 动态地使用 listPlural 参数?

类似于 doc.listPlural[0],仅供参考。

您可以使用 brackets notation 访问文档字段,例如:

 deleteFromList ({commit}, {list = '', type = '', listPlural = '', data = {}}) {
  db.rel.find(list, data).then(doc => {
   if(listPlural){// check if the listPlural is not empty
      return db.rel.del(list, doc[listPlural][0])
   }
  })
}