J'ai une boucle for qui recherche une valeur dans un tableau dans mon code javascript dans couchDb. Je veux en faire une fonction. Cela devrait être assez simple mais j'ai des problèmes avec ça. Ceci est la boucle (qui fonctionne parfaitement bien):Déclaration d'une fonction de boucle for en javascript
if (newDoc.destination && newDoc.destination.length > 0) {
for (var i = 0; i < newDoc.destination.length; i++) {
if (newDoc.destination[i].address) return;
}
}
throw({forbidden: 'doc.address is required'});
Et c'est la façon dont j'enveloppai en fonction:
function arrayReq(field, message) {
message = message || "Array must have a " + field;
if (newDoc.destination && newDoc.destination.length > 0) {
for (var i = 0; i < newDoc.destination.length; i++) {
if (newDoc.destination[i].field) return;
}
}
throw({forbidden: message});
}
Je pense que le retour de la fonction doit arrêter la fonctionner d'aller plus loin, mais il jette encore l'erreur. Quelqu'un peut-il me dire ce que je fais mal? Btw si je change de champ en adresse cela fonctionne bien. Est-ce que je ne peux pas faire de l'adresse une variable modifiable?
* « Je pense que le retour de la fonction doit arrêter la fonction d'aller plus loin, mais il jette encore l'erreur. » On fait. Si 'newDoc.destination [i] .field' est toujours vrai, cette fonction n'atteindra pas le' throw' à la fin. Donc le problème est ailleurs. –
Note: 'throw 'n'est pas une fonction, il n'est pas nécessaire d'envelopper son opérande dans'() '. Il est généralement préférable de lancer des instances de 'Error', bien que vous puissiez lancer n'importe quel objet. –
Doit être fermé comme doublon de http://stackoverflow.com/questions/4244896/dynamically-access-object-property-using-variable. –