J'ai une page angulaire, avec des champs de saisie à partir desquels j'ai lu les valeurs d'entrée et les définir dans des variables à l'intérieur du fichier .TS. Les valeurs entrées peuvent changer, donc je ne peux pas les valeurs de code papier.
Ce sont les variables I définissez des valeurs à l'aide de [(NGModel)]. Tout est bon avec cela, les valeurs sont définies. P> alors je veux faire une comparaison. Toutes les entrées se terminant par alors je veux faire une comparaison, car je ne veux pas avoir de valeur à partir de mais cela ne fonctionne pas. Je suppose que j'ai besoin d'obtenir des valeurs réelles, car il ne semble pas vérifier les valeurs réelles. P> Comment puis-je réussir à vérifier si la variable de variables a la même valeur que la valeur variables différente? p> Ceci est tout le code ensemble (échantillonnez-le, comme son vérifiant les autres choses également dans le J'aurais pu comparé des valeurs à l'autre, mais je ne voulais pas écrire trop de code, pensais que cela devrait être beaucoup plus court.
J'ai passé 2 heures à chercher des exemples similaires, mais aucun n'a aidé.
J'ai lu sur Toute pointe serait géniale. P> Je suis nouveau à coder, alors s'il vous plaît soyez doux et demandez des éclaircissements si nécessaire. P> Le formatage HTML est totalement faux dans Stackblitz, mais cela fait ce qui est nécessaire. P> Le Vous pouvez voir la logique de la désactivation de la touche Il semble que cela ne met pas à jour les valeurs de la matrice une fois qu'ils sont dynamiquement modifié. Il faut la première valeur que la variable avait et enregistre cette valeur dans la matrice, mais ne le modifie pas lorsque et édition se produit sur la variable (champ de saisie). P> - Qu'est-ce que j'ai fait pour résoudre ce problème Je suis une valeur d'épissage de la matrice, de sorte que chaque fois que j'appelle une fonction qui devrait vérifier les valeurs dans la matrice, je supprime puis insérez cette valeur que je dois mettre à jour dans le tableau, puis effectuez une comparaison avec _1 code> sont placées dans le tableau fromarray code>, tous les autres, finissant par _2 code> dans toarray code>. fromarray code> intérieure toarray code>.
Dans une fonction, j'ai essayé de faire p> si code> instruction), devrait le rendre plus clair. p> array.some () code>, mais il semble que cela ne m'aiderait pas, et causerait une écriture de code supplémentaire, et array.includes () code> est une meilleure option . P> this.Ary. INPUT1_1) CODE> est uniquement dans la première fonction déroulante ( Checkdropdow1 code>) pour l'instant, je ne vois pas besoin d'ajouter à d'autres, car je n'ai besoin de vérifier qu'un seul maintenant. P> Suivant code> également - toutes les valeurs doivent être saisies si la case à cocher est cochée et si elles sont identiques dans l'un des endroits (soit 2 déposées sont identiques, soit l'une quelconque des champs de saisie), le bouton doit être désactivé. p> si code > Déclaration intérieure pour code>. Ensuite, je fais le chèque à l'intérieur de l'instruction si code> avec EqualValue code> où l'original array.include.include (); P est censé être. P > this.fromArray.splice(0, 1, this.input1_1);
this.toArray.splice(0, 1, this.input1_2);
var equalValue = false;
for (let i = 0; i < this.toArray.length; i++) {
if( this.toArray[i] === this.input1_1) {
equalValue = true;
console.log(this.toArray[i]);
console.log(this.input1_1);
break;
}
}
3 Réponses :
S'il vous plaît montrer le code actuel afin que nous puissions l'exécuter par nous-mêmes. Il semble que ces propriétés de chaîne ne soient indéfinies.
if (this.toArray.includes(this.input1_1)) {
Voici un lien vers Stackblitz
Si vous ne vous souciez vraiment pas de la valeur exacte, mais que vous ne devez pas avoir de valeur identique, c'est votre solution.
Inclure lohash dans votre projet loadash - https://lodash.com/docs/4.17.15#uniq explication -
Si les deux matrices ont des valeurs identiques - p> si les deux matrices n'ont aucune valeur identique p> espérons que cela aide le codage heureux !! :) p> p>
Pas assez. Je voudrais comparer une valeur de, par exemple, fromarray code> avec toutes les valeurs de toarray code>, et après cela, je veux vérifier si fratarray code> a déjà cette valeur. Je ne veux pas comparer Array contre le tableau, car il pourrait y avoir null code> ou des chaînes vides, qui compareraient comme existant et ne faisant donc pas ce qui est nécessaire.
Qu'est-ce que j'ai fait pour résoudre ce problème, c'est que je suis une valeur d'épissage de la matrice, de sorte que chaque fois que j'appelle une fonction qui devrait vérifier les valeurs dans la matrice, je supprime puis insérez cette valeur que j'ai besoin de mettre à jour dans le tableau, puis de faire une comparaison utilisant si code> instruction intérieure pour code>. Ensuite, je fais le chèque à l'intérieur du si code> instruction avec EqualValue code> où l'original array.include (); code> était censé être. checkValues() {
this.fromArray.splice(0, 1, this.input1_1);
this.toArray.splice(0, 1, this.input1_2);
var equalValue = false;
for (let i = 0; i < this.toArray.length; i++) {
if( this.toArray[i] === this.input1_1) {
equalValue = true;
console.log(this.toArray[i]);
console.log(this.input1_1);
break;
}
}
if (this.equalValue == true) {
this.disableNext = true
} else (this.disableNext = false)
}
== true code> est inutile. Qu'est-ce que ne fonctionne pas i> exactement?si (ceci.toarray.inclut (this.input1_1) == true) code> devrait fonctionner comme décritJe pensais aussi que je peux exclure le
== vrai code>, merci de clarifier cela. Oui, c'est ce que je pensais que cela fonctionnerait. Donc, si j'entre dans le champINPUT1_2 CODE> VALUETEST CODE>, puis dans le champINPUT1_1 CODE> VALUETEST CODE>, il devrait terminer up astrue code> définit ainsithis.disablenext = true code> et désactivation du bouton code> suivant code>, mais cela ne le fait pas. Il reste activéS'il vous plaît poster une démo sur Stackblitz afin que les gens répondent plus facilement
@Dev Voici un lien vers Stackblitz