当前位置: 首页 > 面试题库 >

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

石俊雄
2023-03-14
问题内容

我需要从作为React组件状态的数组中删除一个元素。这意味着它是一个不变的对象。

使用传播语法可以轻松添加元素。

    return {
        ...state,
        locations: [...state.locations, {}]
    };

删除有些棘手。我需要使用一个中间对象。

        var l = [...state.locations]
        l.splice(index, 1)
        return {
            ...state,
            locations: l
        }

它使代码更加肮脏并且难以理解。

创建一个新数组从中删除元素是否更容易或更轻松?


问题答案:

您可以结合使用spread和Array#slice:

const arr = ['a', 'b', 'c', 'd', 'e'];



const indexToRemove = 2; // the 'c'



const result = [...arr.slice(0, indexToRemove), ...arr.slice(indexToRemove + 1)];



console.log(result);

另一个选择是Array#filter:

const arr = ['a', 'b', 'c', 'd', 'e'];



const indexToRemove = 2; // the 'c'



const result = arr.filter((_, i) => i !== indexToRemove);



console.log(result);


 类似资料:
  • 本文向大家介绍js中数组插入、删除元素操作的方法,包括了js中数组插入、删除元素操作的方法的使用技巧和注意事项,需要的朋友参考一下 实例如下: 通过上面的函数,可以处理上移和下移的动作 定义和用法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。 注释:该方法会改变原始数组。 语法 参数 描述 index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置

  • 问题内容: 在Java中按值从Map中删除元素的最快方法是什么? 目前,我正在使用: 问题答案: 无需使用双向地图(commons-collections和google collections 都有它们),您就可以迭代地图

  • 问题内容: 有没有一种简单的方法可以使用PHP从数组中删除元素,从而不再包含该元素? 我以为将它设置为可以实现,但是显然不起作用。 问题答案: 有多种删除数组元素的方法,其中某些方法对某些特定任务比其他任务更有用。 如果只想删除一个数组元素,则可以使用或。 另外,如果您具有值并且不知道要删除元素的键,则可以使用该键来获取键。 请注意,使用数组键时不会更改/重新索引。如果要重新索引键,则可以使用它,

  • 本文向大家介绍JavaScript从数组中删除指定值元素的方法,包括了JavaScript从数组中删除指定值元素的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript从数组中删除指定值元素的方法。分享给大家供大家参考。具体分析如下: 下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个removeByValue的方法,调用非

  • 本文向大家介绍java中删除 数组中的指定元素方法,包括了java中删除 数组中的指定元素方法的使用技巧和注意事项,需要的朋友参考一下 java中删除 数组中的指定元素要如何来实现呢,如果各位对于这个算法不是很清楚可以和小编一起来看一篇关于java中删除 数组中的指定元素的例子。 java的api中,并没有提供删除数组中元素的方法。虽然数组是一个对象,不过并没有提供add()、remove()或查

  • 问题内容: 好, 我知道有关的所有内容,但这会删除最后一个元素。在不删除数组的情况下获取数组最后一个元素的最佳方法是什么? 编辑:这是奖金: 甚至 问题答案: 此主题中的许多答案为我们提供了许多不同的选择。为了能够从他们中进行选择,我需要了解他们的行为和表现。在此答案中,我将与您分享我的发现,并针对PHP版本和(预计2018年12月13日)进行测试。 我将测试的选项是: 选项1。 选项.2。 (所