Javascript 在JS中,从不可变数组中删除元素最干净的方法是什么?

Javascript 在JS中,从不可变数组中删除元素最干净的方法是什么?,javascript,arrays,reactjs,immutability,spread-syntax,Javascript,Arrays,Reactjs,Immutability,Spread Syntax,我需要从数组中删除一个元素,该数组是React组件的状态。这意味着它是一个不可变的对象 使用扩展语法添加元素很容易 return { ...state, locations: [...state.locations, {}] }; 移除有点棘手。我需要使用一个中间对象 var l = [...state.locations] l.splice(index, 1) return {

我需要从数组中删除一个元素,该数组是
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'];
常量indexToRemove=2;//“c”
常量结果=[…arr.slice(0,indexToRemove),…arr.slice(indexToRemove+1)];

控制台日志(结果)
常量arr=['a','b','c','d','e'];删除arr[2];console.log(arr.filter(Array))
@zerkms我觉得这个问题比重复的问题好,因为这与使用的库无关,而重复目标的答案被Redux语法污染。@emilebergron标记的答案那里与Redux没有连接,是一个通用的JS。第二个答案中的第一个例子是泛型JS。对我来说,它看起来非常适合愿意学习的人,而不是复制粘贴。