gpt4 book ai didi

javascript - 一次从不可变列表中删除多个项目

转载 作者:搜寻专家 更新时间:2023-11-01 05:29:29 25 4
gpt4 key购买 nike

鉴于此:

state = Immutable.fromJS({
selectedTrackIds: ['foo', 'bar', 'baz'],
});

有没有办法使用单个语句(仅使用不可变和纯 JS)从 selectedTrackIds 中删除“foo”和“baz”?还是我只需要使用 lodash?

return state.set('selectedTrackIds', Immutable.fromJS(_.difference(
state.get('selectedTrackIds').toJSON(), ['foo', 'baz']
)));

最佳答案

您可以使用filter 删除不需要的项目:

return state.set('selectedTrackIds',
state.get('selectedTrackIds').filter(function(x) {
return ['foo', 'baz'].indexOf(x) < 0; // false return value => remove from list
})
);

或者结合map,和一些ES6语法:

state.map(x => x.filter(y => ['foo', 'baz'].indexOf(y) < 0))

(filtermap 是标准的 JS,Immutable 提供了自己的实现,直接与 Immutable 集合一起工作)

关于javascript - 一次从不可变列表中删除多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36444682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com