javascript immutable.js

javascript - ¿Cómo puedo establecer un valor profundamente anidado en Immutable.js?



(1)

Los mapas en Immutable tienen un método setIn que hace que sea fácil establecer valores profundos:

peopleImmutable = peopleImmutable.setIn(["Thomas", "nickname"], "Mr. T");

O bien, usando split para generar la matriz:

peopleImmutable = peopleImmutable.setIn("Thomas.nickname".split("."), "Mr. T");

Al trabajar con objetos JavaScript simples, es fácil cambiar una propiedad de objeto anidada profundamente:

people.Thomas.nickname = "Mr. T";

Pero con Immutable tengo que pasar por los antepasados ​​de cada propiedad antes de tener un nuevo objeto de personas:

var thomas = peopleImmutable.get("Thomas"); var newThomas = thomas.set("nickname", "Mr .T"); peopleImmutable = peopleImmutable.set("Thomas", newThomas);

¿Hay alguna forma más elegante de escribir esto?