问题 如何在javascript中删除数组中的特定元素[重复]


这个问题在这里已有答案:


10563
2018-06-07 22:14


起源

安家。因为你显然没有自己搜索,所以我想给你一份副本。
arr.splice(arr.indexOf(elm),1)将从数组'arr'中删除元素'elm' - Gautam Sharma


答案:


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

5
2018-06-07 22:18



你知道有 .splice 对? - Derek 朕會功夫
是的我知道。但我正在考虑阵列可以有多个“a” - Danilo Valente
我没有想到这一点。好点子。 +1 - Derek 朕會功夫
该数组只有唯一值! - Adham


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

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

如果你需要删除 所有 相同的元素,使用 filter 正如火箭队建议:

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

6
2018-06-07 22:17





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

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

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

3
2018-06-07 22:17





我想出了一个简单的解决方案,从数组中省略了必要的元素

<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>

1
2017-12-10 05:58



这对于Array和arraylist都有效 - Milinda Bandara


如果你不想要额外的有效载荷(大约4kb缩小和gzip)你可以使用 没有Underscore库的功能 :

_.without([“a”,“b”,“c”],“a”);

Underscore会给你这个功能+很多非常方便的功能。


0
2018-06-07 22:26





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

0
2017-11-29 14:04