23

If I have array, for example:

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

I need something like

a.remove("a");

How can I do this?

Peter Mortensen
  • 28,342
  • 21
  • 95
  • 123
Adham
  • 58,520
  • 96
  • 215
  • 339

6 Answers6

12
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");
Peter Mortensen
  • 28,342
  • 21
  • 95
  • 123
Danilo Valente
  • 10,599
  • 8
  • 49
  • 65
7
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 });
}
georg
  • 195,833
  • 46
  • 263
  • 351
3

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');
Rocket Hazmat
  • 204,503
  • 39
  • 283
  • 323
2

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>
Peter Mortensen
  • 28,342
  • 21
  • 95
  • 123
Milinda Bandara
  • 512
  • 7
  • 21
0

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.

Peter Mortensen
  • 28,342
  • 21
  • 95
  • 123
Jerome WAGNER
  • 20,021
  • 6
  • 55
  • 73
0
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'
Peter Mortensen
  • 28,342
  • 21
  • 95
  • 123
Siddhartha
  • 1,073
  • 10
  • 9