javascript - 对不可变的 JS Map 对象执行删除操作

标签 javascript immutable.js

我有一个不可变的 JS 映射,其结构如下

{
  "a": [
    {"name": "foo", "untracked": true},
    {"name": "bar"}
  ],
  "b": [
    {"name": "baz"},
    {"name": "bar", "untracked": true}
  ]
}

我想过滤此对象以仅显示被跟踪的对象 - 即

{
  "a": [
    {"name": "bar"}
  ],
  "b": [
    {"name": "baz"},
  ]
}

有没有办法通过不可变的映射操作来做到这一点?我尝试了以下方法,但似乎不起作用

object.map((lis) => lis.filter((li) => li.untracked !== true)).toJS()

object.toList().map((lis) => lis.filter((li) => li.untracked !== true))

最佳答案

let data={
  "a": [
    {"name": "foo", "untracked": true},
    {"name": "bar"}
  ],
  "b": [
    {"name": "baz"},
    {"name": "bar", "untracked": true}
  ]
}
Object.entries(data).map(([key, value]) => {
  data[key]=value.filter(ele=>ele.untracked!=true)
});
console.log("result is : ",data)

关于javascript - 对不可变的 JS Map 对象执行删除操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53397409/

相关文章:

来自标题的 JavaScript 格式 url

JavaScript,检查嵌套对象属性是否为 null/undefined 的优雅方式

immutable.js - 如何使用 ImmutableJS 映射映射中的键值以生成另一个映射?

javascript - 成功操作多次运行

javascript - 如何加入和缩进选中的项目取决于 jquery 中的名称/ID?

javascript - 仅使用 CSS3 实现类似盲人的动画

javascript - Immutable.js 记录上的方法会复制吗?

javascript - 如何使用 Immutable JS Map.setIn 在 Map 中创建深度嵌套列表?

javascript - Immutable.js deleteIn 不工作

javascript - 调用 WebAPI 时请求的资源上不存在 Access-Control-Allow-Origin header