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

30

如果我有一个数组,例如:

a = ["a", "b", "c"]

我需要类似于这样的东西

a.remove("a");

我该怎么做?


安静点,我会为你提供一个重复的,因为你显然没有自己搜索。 - user1106925
arr.splice(arr.indexOf(elm),1) 会从数组'arr'中移除元素'elm'。 - Gautam Sharma
6个回答

15
var newArray = [];
var a=["a","b","c"];
for(var i=0;i<a.length;i++)
    if(a[i]!=="a") 
        newArray.push(a[i]);

截至JavaScript的更新版本:

var a = ["a","b","c"];
var newArray = a.filter(e => e !== "a");

2
你知道有 .splice 吗? - Derek 朕會功夫
2
是的,我知道。但是我在考虑数组可能有多个"a"。 - Danilo Valente
我没有想到那个。很好的观点。+1 - Derek 朕會功夫
该数组仅包含唯一值! - Adham

7
remove = function(ary, elem) {
    var i = ary.indexOf(elem);
    if (i >= 0) ary.splice(i, 1);
    return ary;
}

只要目标浏览器支持array.indexOf,否则请使用该页面提供的备用代码。

如果需要删除所有相同的元素,请按照Rocket所建议的使用filter

removeAll = function(ary, elem) {
    return ary.filter(function(e) { return e != elem });
}

3

如果您使用的是现代浏览器,您可以使用 .filter 方法。

Array.prototype.remove = function(x){
    return this.filter(function(v){
        return v !== x;
    });
};

var a = ["a","b","c"];
var b = a.remove('a');

2
我想出了一个简单的解决方案,可以从数组中省略必要的元素:
<script>
    function myFunction()
    {
        var fruits = ["One", "Two", "Three", "Four"];

        <!-- To drop the element "Three"-->
        <!-- splice(elementid, number_of_element_remove) -->
        fruits.splice(2, 1);

        var x = document.getElementById("demo");
        x.innerHTML = fruits;
    }
</script>

这适用于数组和ArrayList。 - Milinda Bandara

1
let xx = ['a','a','b','c'];  // Array
let elementToRemove = 'a';  // Element to remove
xx =xx.filter((x) => x != elementToRemove) // xx will contain all elements except 'a'

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接