Javascript Immutable.Map.deleteAll()不是函数
考虑以下代码:Javascript Immutable.Map.deleteAll()不是函数,javascript,exception,immutable.js,Javascript,Exception,Immutable.js,考虑以下代码: const person = Immutable.Map({ name: 'John', surname: 'Maverick', age: 39 }); const mutated = person.deleteAll(['name', 'age']); 预期结果是,mutatednow是Map的一个新实例,其键name和age已删除。但是,会引发异常: 未捕获的TypeError:person.deleteAll不是函数 检查Immutable.M
const person = Immutable.Map({
name: 'John',
surname: 'Maverick',
age: 39
});
const mutated = person.deleteAll(['name', 'age']);
预期结果是,mutated
now是Map的一个新实例,其键name
和age
已删除。但是,会引发异常:
未捕获的TypeError:person.deleteAll不是函数
检查Immutable.Map
prototype的可用方法时,没有deleteAll
或removeAll
方法。它们被移除了吗
该方法已在ImmutableJS官方文档中列出,但不可用。在这种情况下,本机不可变的替代方案是什么?
谢谢。我想你应该使用deleteIn
看起来它只是在最新版本中添加的(
ver4 RC1&RC2
)。我查看了src
代码,在3.8.1
中找不到它。除非您想使用4.0.0-rc.2
,否则还没有其他方法可以使用该方法。如前所述,deleteAll
仅在候选版本中。你可以用…得到同样的结果
const mutated = ['name', 'age'].reduce((map, key) => map.delete(key), person);
deleteIn
与其类似的xxxIn
方法将按照您提供的路径删除结束条目。如果我有:constperson=Immutable.Map({name:{age:39}),你的例子就行了代码>
const mutated = ['name', 'age'].reduce((map, key) => map.delete(key), person);