Javascript 如何更新列表中的地图

Javascript 如何更新列表中的地图,javascript,immutable.js,Javascript,Immutable.js,如果我有一个不变的列表,比如: List([ Map({ something: 1 }), Map({ something: 2 }), ]) 如果某物=1,我如何设置某物=5?您可以使用+来实现这一点 console.clear(); 常量列表=不可变的.list([ Immutable.Map({something:1}), Immutable.Map({something:2}), Immutable.Map({something:4}), Immutable.Map(

如果我有一个不变的列表,比如:

List([
    Map({ something: 1 }),
    Map({ something: 2 }),
])
如果某物=1,我如何设置某物=5?

您可以使用+来实现这一点

console.clear();
常量列表=不可变的.list([
Immutable.Map({something:1}),
Immutable.Map({something:2}),
Immutable.Map({something:4}),
Immutable.Map({something:1})
])
const newList=list.map(项=>
item.get(“某物”)==1?item.set(“某物”,5):item
);
log('Old',JSON.stringify(list.toArray(),null,”);
log('New',JSON.stringify(newList.toArray(),null,”)

@Qop的答案在您寻找特定密钥时非常有用

如果要更新每个映射中的多个值,可以在list.Map调用中使用

things
    .map(thing => {
      return thing.mapEntries(([ k, v ]) => {
        const val = (v === 5) ? 1 : v;
        return [ k, val ]
      })
    });