#javascript
Вопрос:
Итак, я хочу получить число, которое больше X в массиве, но меньше Y?
пример У меня есть такой массив:
["5","10","25",etc]
тогда значение равно 5,
поэтому я хочу, чтобы всякий раз, когда мое значение 5 или больше 5, но меньше 10 в массиве, оно возвращало только 5. например, если значение 6/7/8/9, оно вернет 5
(Примечание: Число в массиве всегда будет разным, это зависит от того, что пользователь установил в бд)
Я пробовал, givenNum >= nextNum
но он возвращается с цифрами 10 и 25.
есть какое-нибудь решение?
Комментарии:
1. пожалуйста, добавьте свою попытку и желаемый результат. кстати, почему струны?
2. Итак, вы хотите, чтобы в вашем примере элемент(ы) был больше 5, но меньше 10?
3. @Нина Шольц какие строки?
4. @Mostafa Elkaramany нет, я имею в виду, что если данное число больше 5 или равно, оно даст 5, но меньше следующего числа
5. у вас есть строки в качестве значений.
Ответ №1:
Ты мог бы это сделать :
var array = ["5","10","15","20","25"];
Math.max(...array.filter(nb => nb <= 9))//5
Math.max(...array.filter(nb => nb <= 10))//10
Во-первых, вы фильтруете массив, чтобы сохранить числа, которые меньше или равны заданному значению.
Затем вы используете Math.max()
отфильтрованный массив.
Ответ №2:
Я пробовал использовать givenNum >= nextNum, но он возвращается с цифрами 10 и 25.
Вы сравниваете строки вместо чисел, сравнение строк работает в алфавитном порядке, так как «1» стоит перед «5» в алфавитном порядке, «10» стоит перед «5», поэтому «10»
Вам нужно преобразовать ваши строки в числа с помощью функции Number (), а затем сравнить.
Комментарии:
1. Я не сравнивал строку, данное число равно 5, и следующее число тоже равно 5, я имею в виду, что если пользователь даст 5 до 9, он вернет 5, потому что оно меньше 10 и больше/равно 5