javascript - 从 Map immutable.js 中删除元素

标签 javascript immutable.js

如何使用 immutablejs 映射删除一个元素。这是我的代码。

const initialState = Map({
            job: [
                {text: 'a'},
                {text: 'b'}
            ]
        });

const newState = initialState.delete({job: [text: 'a']});

但这不起作用。尝试了不同的方法,但没能成功。

最佳答案

您可以使用deleteIn以及用于删除可归咎映射的深层属性的属性映射。

const initialState = Immutable.fromJS({
            job: [
                {text: 'a'},
                {text: 'b'}
            ]
        })

console.log(initialState.toJS());

const newState = initialState.deleteIn(["job","0"])

console.log(initialState.toJS());
console.log(newState.toJS());

您也可以使用 Lodash _.toPath将点表示法的字符串路径转换为属性路径数组的方法

const path = _.toPath("job[0].text") //["job", "0", "text"]
const value = initialState.getIn(path) //a

关于javascript - 从 Map immutable.js 中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847385/

相关文章:

javascript - Angular 路由不显示内容

javascript - Firebase:如何始终强制登录?

javascript - 如何从 ImmutableJS 中对象内部的数组中删除元素

javascript - 不可变的 js 从列表映射中创建列表

javascript - 按 Asc 和 Desc 日期排序

javascript - 在 Google Cloud Function 内调用 Promise 函数

javascript - 如果值 = 0,则显示占位符

javascript - 带有延迟的 jQuery/Twitter Bootstrap 数据加载文本按钮

javascript - 如何使用react js显示不可变 map 对象的树结构

Python 不可变类型 ids 和 is 语句