给定这样的状态:
state = {
things: [
{ id: 'a1', name: 'thing 1' },
{ id: 'a2', name: 'thing 2' },
],
};
如何创建一个新状态,其中 ID“a1”已被删除?推送新项目很容易:
return state.set(state.get('things').push(newThing));
但我无法弄清楚如何通过其 id
属性搜索和删除对象。我试过这个:
return state.set('tracks',
state.get('tracks').delete(
state.get('tracks').findIndex(x => x.get('id') === 'a2')
)
)
但它看起来很乱,而且它只有在找到该项目时才有效,因为如果 findIndex
返回 -1
,那是 delete
的有效值
原文由 ffxsam 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
Array#filter
。