Ici, j'ai un objet d'un mois Dans ce mois, l'objet à l'intérieur de la valeur 1,2,3,4,5
et la valeur de l'expérience sélectionnée est 04
(voir console) alors je veux pour trouver la valeur et je compare les deux mais je suis indéfini car 4 et 04 ne correspondent pas
Comment les faire correspondre?
console.log(selectedExperience.from.split('/')[0])) // 04 console.log(months) // [ { value : 1, name: "one"} { value: 2, name: "two" } { value: 4, name: "four" } ] console.log(months.find(month => month.value === selectedExperience.from.split('/')[0])); // undefined
6 Réponses :
Que diriez-vous de le convertir en un int
?
console.log(months.find(month => month.value === parseInt(selectedExperience.from.split('/')[0])));
ma faute ! je voulais l'écrire sur la question!
En supposant que 04
est une chaîne, effectuez un parseInt
ou convertissez-le en nombre avant de comparer ou utilisez l'opérateur unaire
console.log(selectedExperience.from.split('/')[0])) // 04 let exp = parseInt(selectedExperience.from.split('/')[0],10) console.log(months) // [ { value : 1, name: "one"} // { value: 2, name: "two" } // { value: 4, name: "four" }] console.log(months.find(month => month.value ===exp ))
Vous pouvez utiliser parseInt code>
console.log(parseInt('04') === 4)
month.value === parseInt(selectedExperience.from.split('/')[0])
Utilisez Numéro pour comparer des nombres et non des chaînes:
Number(month.value) === Number(selectedExperience.from.split('/')[0])
.split () a > vous renverra un tableau de chaînes. Donc, pour comparer avec un entier, vous devez l'analyser en utilisant parseInt .
var test = "04/12"; var months = [{ value: 1, name: "one" }, { value: 2, name: "two" }, { value: 4, name: "four" } ]; console.log(test.split('/')[0]); console.log(months); console.log(months.find(month => month.value === parseInt(test.split('/')[0])));
essayez de convertir une chaîne en nombre avec l'opérateur "+":
var test = "04"; console.log(test); //04 console.log(+test); //4 console.log(months.find(month => month.value === +selectedExperience.from.split('/')[0]));
Votre meilleur pari serait d'utiliser parseInt sur votre chaîne "04". Tels que
parseInt (selExp.from.split ("/") [0], 10)
qui donnera le nombre 4La méthode split renvoie une chaîne et à cause de votre comparaison "===" avec la valeur qui est un INT, votre recherche ne renvoie rien
@DDD pouvez-vous s'il vous plaît arrêter de demander aux gens de voter pour votre question? Je ne suis pas sûr que ce soit tout à fait cool, et c'est vraiment ennuyeux. Si les gens veulent voter pour votre question, ils le feront. Il suffit de rouler avec.
@Pierce ok merci tu as raison