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);