1
votes

Comment diviser la valeur en javascript?

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


4 commentaires

Votre meilleur pari serait d'utiliser parseInt sur votre chaîne "04". Tels que parseInt (selExp.from.split ("/") [0], 10) qui donnera le nombre 4


La 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


6 Réponses :


3
votes

Que diriez-vous de le convertir en un int?

console.log(months.find(month => month.value === parseInt(selectedExperience.from.split('/')[0])));


1 commentaires

ma faute ! je voulais l'écrire sur la question!



1
votes

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  ))


0 commentaires

2
votes

Vous pouvez utiliser parseInt code>

console.log(parseInt('04') === 4)

month.value === parseInt(selectedExperience.from.split('/')[0]) 


0 commentaires

2
votes

Utilisez Numéro pour comparer des nombres et non des chaînes:

Number(month.value) === Number(selectedExperience.from.split('/')[0])


0 commentaires

1
votes

.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])));


0 commentaires

2
votes

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]));


0 commentaires