不可变 js 更新 Map 中的键

immutable js update a key in Map

所以我有一个不可变的 js 映射:

{
 title: "item 1",
 title2: "item 2",
 title3: "item 3"
}

我要更新密钥,所以会变成:

{
  new title: "item 1",
  title2: "item 2",
  title3: "item 3"
}

到目前为止 update()set() 我只能更新值?是否可以更新密钥,或者我需要先转换密钥才能更新密钥?

您可以将 mapKeys 用作 :

var map = Immutable.Map({
  new title: "item 1",
  title2: "item 2",
  title3: "item 3"
});

map = map.mapKeys(k => {
  if (k === "title1") 
    return "newTitle";
  return k;
});

另一种更直接的方法是使用 delete

var map = Immutable.Map({
  title: "item 1",
  title2: "item 2",
  title3: "item 3"
});

map = map.set('new title', "item 1")
    .delete('title');

map = map.set('new title', map.get('title'))
    .delete('title');