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

array.remove(value);

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


当前回答

为了删除某一元素或随后的元素,Array.splice () 方法效果良好。

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

group: group. spice( index, deleteCount, items 1,... ., items X) 。

这里的索引是强制性的,休息参数是可选的。

例如:

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

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

如果您想要删除仅最后一个元素, 您可以使用 rryal.pop () {如果您想要删除仅第一个元素, 您可以使用 rray. stop () 如果您只知道该元素, 但不是该元素的位置( 或索引) , 并且想要删除使用 arra. filter () 方法的所有匹配元素 : 让 arrr = [1、2、 1、 3、4、 1、 5、 1 ; 让新 Arr = arr. fell( ) (职能) { 返回 val! = = 1; = fal; 1; (val) { = a. (val) { = a. (val) { = 3; (ll) { = a. (rr) 11; (rr) { {r. relicl(i) { = a. (l) ; free. (l) a. (l) a. (l) ; (l) a. (l) ; (l) a. (l) a. (l) ; (l) a. (l) a. (l) ; (l) a; (l) a; (l) a; (l) a; (l) a; (l) ) a; (l) a; (l) a; (l) a; (l) a; (l) a; (l) a; (l) a; (l) a; (l) a; (l) a; (l) a; (l) ; (l) a; (l)

其他回答

从数组中删除项目的最佳方法是使用过滤法。 . filter () 返回没有过滤过的项目的新数组 。

items = items.filter(e => e.id !== item.id);

. filter () 方法映射为完整的数组, 当我返回真实状态时, 它会将当前项目推到过滤的数组。 在此过滤器中读取更多 。

我对基底 JavaScript 阵列进行了相当高效的扩展:

Array.prototype.drop = function(k) {
  var valueIndex = this.indexOf(k);
  while(valueIndex > -1) {
    this.removeAt(valueIndex);
    valueIndex = this.indexOf(k);
  }
};

对我而言,越简单越好,2018年(2019年左右),我给你这个(近一点)单行话,回答最初的问题:

Array.prototype.remove = function (value) {
    return this.filter(f => f != value)
}

有用的是,你可以用在咖喱的表达方式上,比如:

[1,2,3].remove(2).sort()

我张贴我的代码,删除一个阵列元素, 并缩短阵列长度 。

function removeElement(idx, arr) {
    // Check the index value
    if (idx < 0 || idx >= arr.length) {
        return;
    }
    // Shift the elements
    for (var i = idx; i > 0; --i) {
        arr[i] = arr[i - 1];
    }
    // Remove the first element in array
    arr.shift();
}
var arr =[1,2,3,4,5];

arr.splice(0,1)

console.log(arr)

产出[2、3、4、5];