L'épissage d'un tableau Javascript à partir de dans le callback passé à forEach

J'ai ce code qui est censé pour itérer sur chaque élément dans un tableau, de la suppression d'éléments basée sur une condition:

//iterate over all items in an array
//if the item is "b", remove it.

var array = ["a", "b", "c"];

array.forEach(function(item) {
    if(item === "b") {
        array.splice(array.indexOf(item), 1);
    }

    console.log(item);
});

De sortie souhaité:

a
b
c

De sortie réelle:

a
b

Évidemment, le natif forEach méthode n'est pas vérifier après chaque itération si l'élément a été supprimé, donc si c'est pour le prochain élément est ignoré. Est-il une meilleure façon de le faire, en dehors de substitution de la méthode forEach ou mettre mon propre classe à utiliser au lieu d'un tableau?

Modifier - pour faire suite à mon commentaire, je suppose que la solution est de simplement utiliser un standard pour la boucle. Hésitez pas à répondre si vous avez une meilleure façon.

Effectivement je peux voir pourquoi ils ne voulaient pas essayer de prendre en charge cette fonctionnalité, vous devez vérifier si l'élément supprimé est l'élément en cours, sinon, vous risquez de sauter en arrière inutilement (par exemple, si le chèque a été juste, fondée sur de savoir si la longueur avait réduit par un ou quelque chose). semble trop compliqué à mettre en œuvre.

OriginalL'auteur Gus Hogg-Blake | 2014-02-16