Здесь у меня есть объект за один месяц. В этом месяце объект внутри значения 1,2,3,4,5, а выбранное значение опыта равно 04 (см. Консоль), поэтому я хочу найти значение, и я сравниваю оба, но я не определился, потому что 4 and 04 not matched Как их сопоставить?
console.info(selectedExperience.from.split('/')[0])) // 04
console.info(months) // [ { value : 1, name: "one"}
{ value: 2, name: "two" }
{ value: 4, name: "four" } ]
console.info(months.find(month => month.value === selectedExperience.from.split('/')[0])); // undefined
Метод разделения возвращает строку, и из-за вашего сравнения "== = " со значением, которое является INT, ваша находка ничего не возвращает
@DDD, не могли бы вы перестать просить людей голосовать за ваш вопрос? Я не уверен, что это совсем круто, и это определенно раздражает. Если люди захотят проголосовать за ваш вопрос, они это сделают. Просто катайтесь с ним.
@Pierce хорошо, спасибо, ты прав



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Как насчет того, чтобы преобразовать его в int?
console.info(months.find(month => month.value === parseInt(selectedExperience.from.split('/')[0])));
моя вина ! Я хотел написать это по вопросу!
Предполагая, что 04 является строкой, выполните parseInt или преобразуйте ее в число перед сравнением или используйте унарный оператор
console.info(selectedExperience.from.split('/')[0])) // 04
let exp = parseInt(selectedExperience.from.split('/')[0],10)
console.info(months) // [ { value : 1, name: "one"}
// { value: 2, name: "two" }
// { value: 4, name: "four" }]
console.info(months.find(month => month.value ===exp ))
Используйте Количество, чтобы сравнивать числа, а не строки:
Number(month.value) === Number(selectedExperience.from.split('/')[0])
.расколоть() вернет вам массив строк. Поэтому для сравнения с целым числом вам нужно проанализировать его, используя parseInt.
var test = "04/12";
var months = [{
value: 1,
name: "one"
},
{
value: 2,
name: "two"
},
{
value: 4,
name: "four"
}
];
console.info(test.split('/')[0]);
console.info(months);
console.info(months.find(month => month.value === parseInt(test.split('/')[0])));попробуйте преобразовать строку в число с помощью оператора «+»:
var test = "04";
console.info(test); //04
console.info(+test); //4
console.info(months.find(month => month.value === +selectedExperience.from.split('/')[0]));
Лучше всего было бы использовать parseInt в строке «04». Например,
parseInt(selExp.from.split("/")[0], 10), что даст число 4.