Mat*_*ert 43 javascript immutable.js
使用纯JavaScript对象时,可以轻松更改深层嵌套的对象属性:
people.Thomas.nickname = "Mr. T";
Run Code Online (Sandbox Code Playgroud)
但是对于Immutable,我必须在拥有一个新的人物对象之前浏览每个属性的祖先:
var thomas = peopleImmutable.get("Thomas");
var newThomas = thomas.set("nickname", "Mr .T");
peopleImmutable = peopleImmutable.set("Thomas", newThomas);
Run Code Online (Sandbox Code Playgroud)
是否有更优雅的方式来写这个?
Mat*_*ert 64
Immutable中的地图有一个setIn方法,可以轻松设置深度值:
peopleImmutable = peopleImmutable.setIn(["Thomas", "nickname"], "Mr. T");
Run Code Online (Sandbox Code Playgroud)
或者,split用于生成数组:
peopleImmutable = peopleImmutable.setIn("Thomas.nickname".split("."), "Mr. T");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25893 次 |
| 最近记录: |