How to iterate over an array and remove elements in JavaScript [duplicate]
Start from the top!
var elements = [1, 5, 5, 3, 5, 2, 4];for(var i = elements.length -1; i >= 0 ; i--){ if(elements[i] == 5){ elements.splice(i, 1); }}
You could use the filter
method here:
var elements = [1, 5, 5, 3, 5, 2, 4].filter(function(a){return a !== 5;});//=> elements now [1,3,2,4]
Or if you don't want to touch elements
:
var elementsfiltered ,elements = [1, 5, 5, 3, 5, 2, 4] .filter( function(a){if (a!==5) this.push(a); return true;}, elementsfiltered = [] ); //=> elementsfiltered = [1,3,2,4], elements = [1, 5, 5, 3, 5, 2, 4]
See MDN documentation for filter
Alternatively you can extend the Array.prototype
Array.prototype.remove = Array.prototype.remove || function(val){ var i = this.length; while(i--){ if (this[i] === val){ this.splice(i,1); } }};var elements = [1, 5, 5, 3, 5, 2, 4];elements.remove(5);//=> elements now [1,3,2,4]
var elements = [1, 5, 5, 3, 5, 2, 4]; var i = elements.length;while (i--) { if (elements[i] == 5) { elements.splice(i, 1); }}console.log(elements);