如何从数组中删除一个特定值? 类似 :

array.remove(value);

我必须使用核心核心核心JavaScript。 不允许框架 。


当前回答

您可以在 JavaScript 以多种方式完成此任务

  1. 如果您知道该值的索引:在此情况下,您可以使用复数

    var arr = [1,2,3,4]
    // Let's say we have the index, coming from some API
    let index = 2;
    // splice is a destructive method and modifies the original array
    arr.splice(2, 1)
    
  2. 如果您没有索引, 并且只有数值: 在此情况下, 您可以使用过滤器

    // Let's remove '2', for example
    arr = arr.filter((value)=>{
        return value !== 2;
    })
    

其他回答

最简单的方法可能是使用过滤功能。例如:

let array = ["hello", "world"]
let newarray = array.filter(item => item !== "hello");
console.log(newarray);
// ["world"]

只删除第一个34年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄、年龄34:

ages.splice(ages.indexOf(34), 1);

或者您可以在全球定义一种方法 :

function remove(array, item){
    let ind = array.indexOf(item);
    if(ind !== -1)
        array.splice(ind, 1);
}

将所有年龄都除去34:

ages = ages.filter(a => a !== 34);

删除单个元素

function removeSingle(array, element) {
    const index = array.indexOf(element)
    if (index >= 0) {
        array.splice(index, 1)
    }
}

删除多个元素, 位置内

这对于确保算法在O(N)时间运行更为复杂。

function removeAll(array, element) {
    let newLength = 0
    for (const elem of array) {
        if (elem !== number) {
            array[newLength++] = elem
        }
    }
    array.length = newLength
}

删除多个元素,创建新对象

array.filter(elem => elem !== number)

要从数组中删除元素, 要从数组中除去元素, 组合、 过滤和删除

每个阵列都有自己的索引,它有助于用索引删除一个特定元素。

拼盘 () 方法

array.splice(index, 1);    

第一个参数是指数指数指数指数第二个是要从该索引中删除的元素数量。

因此,单一个元素,我们用1。

删除方法

delete array[index]

过滤 () 方法

如果您想要删除一个在数组中重复的元素, 那么过滤数组 :

removeAll = array.filter(e => e != elem);

何处处elem是要从数组中删除的元素。array您的数组名称。

删除某一要素或随后的元素,Array.spolice ()方法运作良好。

组合法通过删除或替换现有元素和(或)添加新元素来改变数组的内容,并返回被删除的项目。

语法: 数组. spice( index, deleteCount, items 1,...,..., itemsX)

index休息辩论是强制性的,休息辩论是任择的。

例如:

let arr = [1, 2, 3, 4, 5, 6];
arr.splice(2,1);
console.log(arr);
// [1, 2, 4, 5, 6]

注: Array.spolice ()如果您知道要删除的元素的索引, 可以使用该方法。 但我们可能还会有以下几个例子:

  1. 如果您想要删除仅最后一个元素, 您可以使用Array.pop ()

  2. 如果您想要删除仅第一个元素, 您可以使用矩阵. trip ()

  3. 如果您只知道元素, 而不知道元素的位置(或索引), 并且想要删除所有匹配元素Array. filter ()方法 :

    let arr = [1, 2, 1, 3, 4, 1, 5, 1];
    
    let newArr = arr.filter(function(val){
        return val !== 1;
    });
    //newArr => [2, 3, 4, 5]
    

    或者通过使用复数()方法作为:

    let arr = [1, 11, 2, 11, 3, 4, 5, 11, 6, 11];
        for (let i = 0; i < arr.length-1; i++) {
           if ( arr[i] === 11) {
             arr.splice(i, 1);
           }
        }
        console.log(arr);
        // [1, 2, 3, 4, 5, 6]
    

    或者假设我们想要删除del从数组arr:

    let arr = [1, 2, 3, 4, 5, 6];
    let del = 4;
    if (arr.indexOf(4) >= 0) {
        arr.splice(arr.indexOf(4), 1)
    }
    

    let del = 4;
    for(var i = arr.length - 1; i >= 0; i--) {
        if(arr[i] === del) {
           arr.splice(i, 1);
        }
    }
    
  4. 如果您只知道元素, 而不知道元素的位置( 或索引) , 并且想要使用 复数 () 方法删除第一个匹配元素 :

    let arr = [1, 11, 2, 11, 3, 4, 5, 11, 6, 11];
    
    for (let i = 0; i < arr.length-1; i++) {
      if ( arr[i] === 11) {
        arr.splice(i, 1);
        break;
      }
    }
    console.log(arr);
    // [1, 11, 2, 11, 3, 4, 5, 11, 6, 11]