If I have array, for example:
a = ["a", "b", "c"]
I need something like
a.remove("a");
How can I do this?
If I have array, for example:
a = ["a", "b", "c"]
I need something like
a.remove("a");
How can I do this?
var newArray = []; var a=["a","b","c"]; for(var i=0;i<a.length;i++) if(a[i]!=="a") newArray.push(a[i]);
As of newer versions of JavaScript:
var a = ["a","b","c"]; var newArray = a.filter(e => e !== "a");
remove = function(ary, elem) { var i = ary.indexOf(elem); if (i >= 0) ary.splice(i, 1); return ary; }
provided your target browser suppports array.indexOf
, otherwise use the fallback code on that page.
If you need to remove all equal elements, use filter
as Rocket suggested:
removeAll = function(ary, elem) { return ary.filter(function(e) { return e != elem }); }
If you're using a modern browser, you can use .filter
.
Array.prototype.remove = function(x){ return this.filter(function(v){ return v !== x; }); }; var a = ["a","b","c"]; var b = a.remove('a');
I came up with a simple solution to omit the necessary element from the array:
<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>
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'
If you don't mind the additional payload (around 4 kB minified and gzipped) you could use the without function of the Underscore.js library:
_.without(["a", "b", "c"], "a");
Underscore.js would give you this function + a lot of very convenient functions.