use*_*212 17 javascript immutable.js
我有一个这种结构的地图:
{
1: {},
2: {}
}
Run Code Online (Sandbox Code Playgroud)
我想从它中删除2:{}(当然 - 如果没有这个,则返回新的集合).我该怎么做?我试过这个,但有些不对劲:
theFormerMap.deleteIn([],2) //[] should mean that it's right in the root of the map, and 2 is the name of the object I want to get rid of
Run Code Online (Sandbox Code Playgroud)
Joh*_*ria 19
只需在双引号中使用delete方法和属性:
theFormerMap = theFormerMap.delete("2")
Run Code Online (Sandbox Code Playgroud)
只需使用delete方法并传递要删除的属性即可:
theFormerMap = theFormerMap.delete(2)
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,那么您可能theFormerMap使用来创建了fromJS:
Immutable.fromJS({1: {}, 2: {}}).delete(2)
=> Map { "1": Map {}, "2": Map {} }
Run Code Online (Sandbox Code Playgroud)
实际上,键2并未删除,实际上是字符串键。原因是javascript对象将数字键转换为字符串。
但是,如果您不使用整数键构造映射,则Immutable.js确实支持带有整数键的映射fromJS:
Immutable.Map().set(1, Immutable.Map()).set(2, Immutable.Map()).delete(2)
=> Map { 1: Map {} }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15778 次 |
| 最近记录: |