所以我有一个不可变的js地图:
{
title: "item 1",
title2: "item 2",
title3: "item 3"
}
我想更新密钥,因此它将变为:
{
new title: "item 1",
title2: "item 2",
title3: "item 3"
}
到目前为止update()
和set()
我只能更新值吗?是否可以更新密钥,或者在更新密钥之前是否需要进行转换?
答案 0 :(得分:12)
您可以使用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;
});
答案 1 :(得分:3)
另一种更直接的方法是使用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');