如何使用 Immutable 删除深层属性

How to remove deep properties using Immutable

我有以下对象作为不可变映射:

{
  "email": {
    "events": {},
    "value": "test@mail.com"
  },
  "name": {
    "events": {},
    "value": "My Name"
  }
}

使用 Immutable,如何删除所有对象的 events 属性?类似于(伪代码):

fields.deleteIn(['*', 'events'])

或者(奖金问题),最好只过滤以便只保留 value

知道了。

fields = fields.map(field => ({ value: field.get('value') }))

更新:12/7/2016

实际上,这有点懒惰,并没有真正删除该字段。这个比较好:

fields = fields.map(field => field.delete('events'))