Как разделить значение в javascript?

Здесь у меня есть объект за один месяц. В этом месяце объект внутри значения 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

Лучше всего было бы использовать parseInt в строке «04». Например, parseInt(selExp.from.split("/")[0], 10), что даст число 4.

Sean Kelly 18.03.2019 17:06

Метод разделения возвращает строку, и из-за вашего сравнения "== = " со значением, которое является INT, ваша находка ничего не возвращает

Maxime Girou 18.03.2019 17:10

@DDD, не могли бы вы перестать просить людей голосовать за ваш вопрос? Я не уверен, что это совсем круто, и это определенно раздражает. Если люди захотят проголосовать за ваш вопрос, они это сделают. Просто катайтесь с ним.

Pierce 18.03.2019 18:25

@Pierce хорошо, спасибо, ты прав

Dharmesh 19.03.2019 05:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
146
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Как насчет того, чтобы преобразовать его в int?

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

моя вина ! Я хотел написать это по вопросу!

Maxime Girou 18.03.2019 17:09

Предполагая, что 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  ))

Вы можете использовать parseInt

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

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

Используйте Количество, чтобы сравнивать числа, а не строки:

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

Другие вопросы по теме