【发布时间】:2018-04-11 22:44:40
【问题描述】:
我需要从React 组件状态的数组中删除一个元素。这意味着它是一个不可变的对象。
使用展开语法很容易添加元素。
return {
...state,
locations: [...state.locations, {}]
};
删除有点棘手。我需要使用中间对象。
var l = [...state.locations]
l.splice(index, 1)
return {
...state,
locations: l
}
它使代码更加肮脏且难以理解。
创建一个从中删除元素的新数组是否更容易或更简单?
【问题讨论】:
-
const arr = ['a', 'b', 'c', 'd', 'e']; delete arr[2]; console.log(arr.filter(Array)) -
@zerkms 我觉得这个问题比重复问题好,因为这与使用的库无关,而欺骗目标的答案被 Redux 语法污染。
-
@EmileBergeron 标记的答案与 redux 的连接为 0,并且是通用 JS。第二个答案中的第一个示例是通用 JS。对我来说 - 它看起来很适合愿意学习而不是复制粘贴的人。
标签: javascript arrays reactjs immutability spread-syntax