javascript-objects - 使用 immutableJs 更新 OrderMap 中具有特定值的所有键
问题描述
我正在尝试找到使用 immutableJs 遍历所有键的更好方法。(基本上,我想一次更新 Map 中的所有值。)尝试通过更改 tdata.setIn([tdata.keySeq(), "comments"], value =>"new Comment"); setIn , UpdateIn - Immutable 中的深度持久更改方法
let data = [
{
id: "1",
isSelected: false,
isStarred: false,
comments: “comments”,
title: “Title1”,
userName: “uName”
},
{
id: "2",
isSelected: false,
isStarred: false,
comments: “comments”,
title: “Title1”,
userName: “uName”
},
{
id: "3",
isSelected: false,
isStarred: false,
comments: “comments”,
title: “Title1”,
userName: “uName”
},
{
id: "4",
isSelected: false,
isStarred: false,
comments: “comments”,
title: “Title1”,
userName: “uName”
},
{
id: "5",
isSelected: false,
isStarred: false,
comments: “comments”,
title: “Title1”,
userName: “uName”
}
]
let tData = OrderedMap();
for (let i = 0; i < data.length; i++) {
let values = Map(data[i]);
tData = tData.set(data[i].id, values);
}
tdata.updateIn([“2”, "comments"], value =>”new Comment”);
而不是明确指定键=“2”,我希望更新整个地图感谢您的帮助
解决方案
听起来您想使用该map
功能。
const data = fromJS({
a: {comment: "1"},
b: { comment: "2"},
c: {count: "3"}
);
const newData = data.map((key, value) => {
if (value.get("comment") == "2")
return value.set("comment", "new comment")
else
return value
});
推荐阅读
- mysql - 正则表达式在mysql中包含null?
- gitlab - GitLab 在没有 SSH 的情况下部署到服务器
- authentication - NextJS - 无法访问 getServerSideProps 中的 cookie
- java - 使用对象作为参数
- internet-explorer-11 - 尝试在 IE11 中打开时,某些网站如何在 Edge 中自动打开?
- python - 在 python 中拟合交换泊松分布似乎不正确
- firebase - 支持移动应用程序的 Firebase 项目的安全性
- python - 使用 python-logstash 向 logstash 发送基本消息并删除不必要的信息数据
- c# - 如何使用 Microsoft Graph 中的一些 API
- css - @media print 如何在表格中仅显示子元素