从Map immutable.js中删除元素

时间:2015-09-29 14:59:56

标签: javascript immutable.js

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

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

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

但这不起作用。尝试了不同的方法,但无法使其发挥作用。

2 个答案:

答案 0 :(得分:3)

您可以使用deleteIn和属性映射删除不可映射地图的深层属性。

scrollView

此外,您可以使用Lodash _.toPath方法将点符号中的字符串路径转换为属性路径数组

UIWebView

答案 1 :(得分:0)

您的示例表明您有一张地图但看起来您的地图包含可变数据值。创建这样的地图..

import Immutable from 'immutable'

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

将导致数据结构看起来像这样......

Map {
  job: [
    {text: 'a'},
    {text: 'b'}
  ]
})

其中job是一个数组,数组实体是对象。

如果这实际上是您想要的数据结构,您可以尝试使用能够处理混合数据类型的mudash

import Immutable from 'immutable'
import _ from 'mudash'
const initialState = Immutable.Map({
  job: [
    {text: 'a'},
    {text: 'b'}
  ]
})
const newState = _.delete(initialState, 'job[0]')   // Map { job: [{text: 'b'}] }