Pousser Fonctions dans un Tableau - Boucle et de la Jonction?
À l'aide de Javascript j'ai besoin d'être en mesure de:
1: appuyez sur une certaine quantité de la même fonction (avec un paramètre différent de chaque) dans un tableau.
2: Ensuite, exécutez chaque fonction un par un (pour cet exemple juste d'une alerte du paramètre/numéro)
3: Après chaque fonction que j'ai besoin d'être en mesure d'ÉPISSAGE que la fonction de la matrice de
4: Vérifiez la Longueur du Tableau après à chaque fois - une Fois que le tableau est à nouveau vide - alerte l'utilisateur, il est complet
Maintenant j'ai l'impression d'être capable de faire des tâches 1, 2 et 4, mais je suis sturggling avec la façon d'épissure de la fonction de la matrice après l'exécution peut aider quelqu'un? Comme je ne peux pas supprimer la fonction, je ne suis jamais trouvé le "fait" alerte une fois que toutes les fonctions ont été appelés
Mon code javascript jusqu'à présent est:
//Create empty array
var array = [];
//Push functions into array - dynamic amount and could be any amount of functions
array.push(func(1));
array.push(func(2));
array.push(func(3));
//Call array manager function after pushing array
arrayManager();
//Array manager function to splice and detect when finished
function arrayManager() {
if (array.length < 1) {
alert("done");
}
else {
//////////////////////////////////
//<< THIS IS WHERE I DON'T KNOW HOW TO SPLICE THE ITEM FROM THE ARRAY
//////////////////////////////////
}
}
//Function for array objects - alert passed parameter
function func(num){
alert(num);
}
Avez-vous lu la jonction de la documentation?
aussi, la "longueur" de la propriété commence à 1 pas de zéro
Ce qui sur un tableau à n éléments?
Maintenant, vous n'êtes pas pousser toutes les fonctions dans le Tableau.
OriginalL'auteur Lauren Reynolds | 2012-09-24
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous ne pousse pas les fonctions dans le tableau à l'instant, vous exécutez la touche func place. Pour atteindre le pousser votre func devrait ressembler à ceci:
Maintenant, si vos fonctions sont synchrones, il vous suffit d'itérer sur le tableau
Si nous avons affaire à asynchrones fonctions alors qu'ils ont besoin d'avoir un rappel:
Et ensuite vous pouvez soit utiliser un compteur pour s'exécuter en parallèle.
Ou dans l'ordre:
Passons sur le fait... 🙂
OriginalL'auteur DeadAlready
Cela devrait faire ce que vous êtes à la recherche pour:
"splice" prend au moins deux paramètres: le premier est l'indice de commencer à retirer à partir de, et le second est le nombre d'éléments à supprimer. Comme elle renvoie un nouveau tableau, pour obtenir exactement la fonction que vous obtenez la première valeur de l'épissage. Vous pouvez également ajouter autant de valeurs que vous souhaitez après ces deux premiers paramètres qui seront ajoutés au tableau à la place de ce que vous avez supprimé.
Cependant, je suis curieux de savoir pourquoi vous le faites de cette façon - même si je peux comprendre de faire quelque chose de manière conventionnelle comme un exercice intellectuel, si vous êtes nouveau à la programmation, je dirais qu'il y a une meilleure façon de le faire. Il n'y a pas besoin de supprimer des éléments de la matrice que vous utilisez les fonctions d'elle. Pour moi, cela aurait plus de sens pour exécuter chaque fonction à partir de la matrice, puis réglez "array = []" après la fin de la boucle. Toutefois, en fonction des circonstances, ce peut être encore le meilleur moyen de faire ce que vous faites, j'ai juste pensé que je donnerais un peu de nourriture pour la pensée.
Sons assez raisonnable sur le visage de celui-ci. Toutefois, si vous êtes le déchargement de toutes les fonctions à la fois, il n'y a vraiment pas besoin de s'embêter avec de l'épissage. Le principal avantage de quelque chose comme l'épissage dans un cas comme cela est si vous êtes exécution fonctions dans un peu de façon aléatoire. Si vous envisagez sur l'exécution de tous à la fois, je voudrais juste utiliser une boucle for pour passer et d'exécuter chacun d'eux, puis définissez le tableau à vide après la finition. Aussi, si vous êtes nouveau à l'javascript, assurez-vous de vérifier le MDN ressources Chris Francis liés - c'est un excellent moyen d'apprendre à propos de javascript.
OriginalL'auteur Bubbles
OriginalL'auteur
Est-ce que vous avez besoin?
1: appuyez sur une certaine quantité de la même fonction (avec un paramètre différent de chaque) dans un tableau.
2: Ensuite, exécutez chaque fonction un par un (pour cet exemple juste d'une alerte du paramètre/numéro)
3: Après chaque fonction que j'ai besoin d'être en mesure d'ÉPISSAGE que la fonction de la matrice de
4: Vérifiez la Longueur du Tableau après à chaque fois - une Fois que le tableau est à nouveau vide - alerte l'utilisateur, il est complet
OriginalL'auteur prashanth
http://jsfiddle.net/nZ459/1/
Si vous voulez pousser chaque fonction avec ses paramètres dans la manière que vous faites, vous aurez à intégrer la fonction comme ceci:
Alternativement, vous pourriez faire un wrapper générique qui prend une fonction et les arguments en paramètres, et retourne une fonction anonyme.
Pour répondre à votre question plus directement, de la façon la plus simple de courir à travers un tableau de la manière que vous le désir est comme ceci:
OriginalL'auteur Shmiddty