Comment puis-je supprimer un élément dans une liste, en utilisant pour tout?

var people = ['alex','jason','matt']; people.forEach(function(p){ if(p.length > 4){ //REMOVE THIS PERSON or pop it out of the list or whatever } }); console.log(people) //should return ['alex','matt'] 

Je souhaite supprimer un élément de la liste, en utilisant cette boucle pour chaque boucle.

Vous ne devez pas modifier le tableau sur lequel vous vous débrouillez. Vous pouvez en produire un nouveau:

 var newPeople = []; people.forEach(function(p){ if(p.length <= 4){ newPeople.push(p); } }); 

Utilisez les bons outils pour le bon travail. Dans ce cas:

 for (var i = 0; i < data.length; i++) { if (data[i].value === 5) { data.splice(i--, 1); } } 

Ou comme @nnnnnn a suggéré, boucle vers l'arrière:

 for (var i = data.length-1; i >= 0; i--) { if (data[i].value === 5) { data.splice(i, 1); } } 

Cependant, vous devriez envisager d'utiliser Array.prototype.filter() :

 data.filter(function (e) { return e.value !== 5; }); 

Ou une bibliothèque de fonctions d'utilité telles que lodash ou souligné , qui fournissent une fonction pour supprimer des éléments d'un tableau:

 _.remove(data, function (e) { return e.value === 5; }); 

Le bénéfice des deux derniers est que votre code devient plus lisible.

Pour tout, puisque ES5 peut être utilisé avec un index:

 data.forEach(function (element, index) { if (element % 2 == 0) { data.splice(index, 1); } });