Je veux définir une valeur booléenne "vraie" à une variable à l'intérieur des drapeaux []. Ensuite, lorsque toutes les variables à l'intérieur des drapeaux [] sont vraies, je dois faire une opération.
Veuillez trouver mon code ci-dessous. P>
var flags = [terminationFlag,transferFlag,jrCancelledFlag,jrFilledFlag,jrOpenFlag,miegFlags,headcountFlag,replacementReqFlag,costcentreFlag,gradeMapFlag]
var arguments = ["terminationReport - 2019-1", "transferReport - 2019-1", "jrCancelledReport - 2019-1", "jrFilledReport - 2019-1", "jrOpenReport - 2019-1","MIEGReport - 2019-1", "HeadCountReport - 2019-1","ReplacementReport - 2019-1","CostcentreReport - 2019-1","GradeMapReport - 2019-1"]
for (i=0; i < arguments.length ;i++){
console.log("arguments : "+ arguments[i]);
request('http://localhost:3000/query/CheckKey/'+arguments[i], function (error, response, body) {
var result = JSON.stringify(response.body).replace(/[^a-zA-Z ]/g, "");
if (result == "yes"){
console.log("record found ****************");
flags[i]=true;
console.log("flags : "+ flags);
}
if flags = true {
//do operation
}
});
}
3 Réponses :
Si vous souhaitez vérifier si chaque élément de ou si votre navigateur ne prend pas en charge Es6: p> drapeaux code> est vrai, utilisez array.every () code> :
Ceci est probablement parce que vous exécutez une opération asynchrone dans ou utilisez pour code> boucle. Depuis que vous n'avez pas déclaré i code>, il est créé comme une variable globale. Le pour code> La boucle déclenche simplement les demandes et n'attendrons pas que les rappels sont exécutés. Au moment où Demande code> est effectué, la valeur de i code> est modifiée en quelque chose d'autre et vous avez fini par attribuer true code> au mauvais drapeau / code> éléments. Alors, changez-le à: let code>: p>
Merci pour la réponse.Il fonctionne. Y a-t-il une possibilité que je puisse définir les valeurs telles que TerminantFlag = true, transfert = true, jrcancelledflag = true, jrfilledflag = true. afin que je puisse vérifier comme si (TerminationFlag = true && transfert = true && jrcancelledflag = true && jrfilledflag = true) {// fait une certaine opération}
@Priyanka Vous pouvez continuer à faire référence aux valeurs booléennes. Vous devriez créer un objet avec toutes ces propriétés comme valeurs clés. Ou vous devriez utiliser un Boolean code> objet
Il y a 2 problèmes ici.
Tout d'abord, cette boucle doit utiliser second, p> Vous devez utiliser n'importe quelle forme de boucle pour vérifier si tous les Les drapeaux dans le tableau des flags sont vrais. Vous pouvez utiliser Array.Every Comme dans la réponse de Jack Bashford. P> Je recommande une boucle ordinaire car elle est meilleure-performance-sage. p> let allFlagsTrue = true
for (let j = 0; j < flags.length; j++){
if (flags[i] === false){
allFlagsTrue = false
}
}
if (allFlagsTrue){
// Do your operations
}
Les drapeaux font-ils partie de la seule partie qui ne fonctionne pas dans votre code?
Oui @holydragon. J'ai besoin de définir la valeur sur les variables à l'intérieur des indicateurs []. afin que je puisse vérifier les valeurs à l'intérieur des indicateurs [] == vrai