Вход

Просмотр полной версии : ES6 создать массив из случайный чисел, где первый элемент не равен 0


Volonter
15.06.2022, 09:15
Всем привет, как реализовать то что в заголовке? Просто получить массив случайных чисел понятно, я делаю вот так

let newArr = Array(10).fill().map(() => Math.round(Math.random() * 9))
console.log(newArr)

а как сделать чтобы первое не являлось нулем, но дальше в массиве нули могут быть?
Заранее спасибо!

ksa
15.06.2022, 10:21
как сделать чтобы первое не являлось нулем
Как вариант...
let newArr = Array(10).fill().map(_ => value())
while (newArr[0] === 0) newArr[0] = value()
alert(newArr)
//
function value() {
return Math.round(Math.random() * 9)
}

рони
15.06.2022, 10:35
Volonter,
let length = 10, max = 9;
let newArr = Array.from({length}, (_, i) => !i + Math.round(Math.random() * (max - !i)));
console.log(newArr)

Volonter
15.06.2022, 10:41
ksa,
Спасибо, это работает, но может есть вариант без циклов и доп.функций, ну как то полаконичней что-ли))

Volonter
15.06.2022, 10:42
рони,
Во, то что нужно! Супер, спасибо!