如何使用不可变来移除深层属性

How to remove deep properties using Immutable

本文关键字:属性 何使用 不可变      更新时间:2023-09-26

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

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

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

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

或者(附加问题),最好只是过滤,以便只保留value

明白了

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

更新:12/7/2016

实际上,这是一种懒惰,并没有真正删除字段。这样更好:

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