如何在javascript中删除数组中的特定元素

Adh*_*ham 16 javascript arrays object

如果我有数组,例如:

a=["a","b","c"]  
Run Code Online (Sandbox Code Playgroud)

我需要类似的东西

a.remove("a");
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Dan*_*nte 9

var newArray = [];
var a=["a","b","c"];
for(var i=0;i<a.length;i++)
    if(a[i]!=="a") newArray.push(a[i]);
Run Code Online (Sandbox Code Playgroud)

编辑:从更新版本的JS:

var a = ["a","b","c"];
var newArray = a.filter(e => e !== "a");
Run Code Online (Sandbox Code Playgroud)

  • 你知道`.splice`对吗? (2认同)
  • 是的我知道。但我正在考虑数组可以有多个“a” (2认同)

geo*_*org 7

remove = function(ary, elem) {
    var i = ary.indexOf(elem);
    if (i >= 0) ary.splice(i, 1);
    return ary;
}
Run Code Online (Sandbox Code Playgroud)

提供目标浏览器支持array.indexOf,否则使用该页面上的回退代码.

如果您需要删除所有相同的元素,请使用filterRocket建议:

removeAll = function(ary, elem) {
    return ary.filter(function(e) { return e != elem });
}
Run Code Online (Sandbox Code Playgroud)