我在不可变的js中有这样的结构地图:
myMap = {
a: {
b: {
c: [
{ d: "something1", ... },
{ d: "something2", ... }
],
...
},
...
},
...
}
然后我想更新d
s。
我尝试过:
myMap.updateIn(["a", "b", "c"], (each) => {
each.set("d", "something else");
});
并且喜欢:
myMap.updateIn(["a", "b", "c"], (each) => {
each.map((e) => {
e.set("d", "something else");
});
});
但是如你所知,那些不起作用。
如何更新d
s?
答案 0 :(得分:1)
我找到了上述代码无效的原因。
首先,第二个代码是部分正确,但第一个是错误的。
部分表示逻辑正确,但ES6的语法不正确。
所以,正确的代码是:
const updatedMyMap = myMap.updateIn(["a", "b", "c"], each =>
each.map(e => e.set("d", "something else"))
);
(param1,param2,...,paramN)=> {statements}
(param1,param2,...,paramN)=>的表达强>
//相当于:(param1,param2,...,paramN)=> {return expression; } 强>
这就是我的代码不起作用的原因。
我应该返回map()
的结果。