不可变 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');
所以我有一个不可变的 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');