How to remove specific element in array in javascript
本问题已经有最佳答案,请猛点这里访问。
如果我有数组,例如:
1 | a=["a","b","c"] |
我需要类似的东西
1 | a.remove("a"); |
我该怎么做?
1 2 3 4 | var newArray = []; var a=["a","b","c"]; for(var i=0;i<a.length;i++) if(a[i]!=="a") newArray.push(a[i]); |
编辑:从更新版本的JS开始:
1 2 | var a = ["a","b","c"]; var newArray = a.filter(e => e !=="a"); |
1 2 3 4 5 | remove = function(ary, elem) { var i = ary.indexOf(elem); if (i >= 0) ary.splice(i, 1); return ary; } |
如果目标浏览器支持
如果您需要删除所有相同的元素,请使用rocket建议的
1 2 3 | removeAll = function(ary, elem) { return ary.filter(function(e) { return e != elem }); } |
如果您使用的是现代浏览器,则可以使用
1 2 3 4 5 6 7 8 | Array.prototype.remove = function(x){ return this.filter(function(v){ return v !== x; }); }; var a = ["a","b","c"]; var b = a.remove('a'); |
我想出了一个简单的解决方案,从数组中省略必要的元素。
1 2 3 4 5 6 7 8 9 10 11 | 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; } |
1 2 3 | 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' |
如果您不介意额外的有效负载(约4KB小型化和gzip化),可以使用下划线库的without函数:
_.无(["A"、"B"、"C"],"A");
下划线将为您提供这个函数+许多非常方便的函数。