#javascript #arrays #numbers
#javascript #массивы #числа
Вопрос:
Я хотел бы получить массив из 26 чисел, начинающихся 1
и заканчивающихся 42
.
Я не смог выяснить, как это сделать (ответы, похоже, предназначены для нахождения всех целых чисел между двумя числами по сравнению с указанным количеством шагов). Числа могут быть плавающими.
В идеале я бы хотел, чтобы это было многоразовой функцией, что-то вроде:
numberRange(lower, upper, steps)
В качестве простого примера, если бы я сделал:
numberRange(2, 10, 5)
Это вернет: [2, 4, 6, 8, 10]
.
Ответ №1:
Решено!
function getRange(upper, lower, steps) {
const difference = upper - lower
const increment = difference / (steps - 1)
return [lower, ...Array(steps - 2).fill('').map((_, index) =>
lower (increment * (index 1))
), upper]
}
Ответ №2:
Уверен, что просто разделение сработает:
function numberRange(upper, lower, steps) {
return new Array(steps 1).fill(undefined).map((v, idx) => (upper / steps) * (idx 1));
}
Комментарии:
1. Если я это сделаю
numberRange(10, 2, 5)
, это вернет мне 6 чисел :[1.6, 3.2, 4.8, 6.4, 8, 9.6]
. Удалениеsteps 1
исправляет это, однако я бы хотел, чтобы числа начинались с 2 и заканчивались на 10.2. Хорошо @gosseti У меня была опечатка, исправил ее — теперь она работает для вас?
3. Не повезло с этим. Я все еще возвращаю слишком много чисел, а диапазон начинается и заканчивается слишком высоким.