Я испытываю ту же проблему.
Вот мое решение: 1. Не используйте «select *». Просто выберите поле, которое вам нужно. 2. Разделите запрос. Если выбранное вами поле слишком велико, результатом может быть разделение на какой-то запрос. Вы можете «array_merge ()» результат позже, если вы хотите, чтобы переменная, содержащая результат, не была изменена.
В моем случае я разбил запрос на 5 запросов, затем массив объединил его с помощью PHP.
Проблема лежит на сервере mysql. Это просто то, что разработчик приложений (такой, как я, я) не имеет преувеличения.
Как насчет преобразования его в int
?
console.log(months.find(month => month.value === parseInt(selectedExperience.from.split('/')[0])));
Вы можете использовать parseInt
month.value === parseInt(selectedExperience.from.split('/')[0])
console.log(parseInt('04') === 4)
Используйте Число , чтобы сравнивать числа, а не строки:
Number(month.value) === Number(selectedExperience.from.split('/')[0])
попытаться преобразовать строку в число с помощью оператора "+":
var test = "04";
console.log(test); //04
console.log(+test); //4
console.log(months.find(month => month.value === +selectedExperience.from.split('/')[0]));
Предполагая, что 04
является строкой, сделайте parseInt
или преобразуйте ее в число перед сравнением или используйте унарный оператор
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 ))
. .split () вернет вам массив строк. Поэтому для сравнения с целым числом вам необходимо проанализировать его, используя 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])));