@vtaeke

Как создать функцию которая возвращает рандомный массив?

Всем привет.
Не получается создать рандомный массив, в чем проблема, не понимаю.

const randomArr = () => {
  let arr = [];
  for (let i = 0; i < 10; i++) {
    arr.push(Math.floor(Math.random() * 10));
  }
  console.log(arr);
};
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
В коде в вопросе забыли вернуть полученный массив из функции:
const randomArr = () => {
  // ...

  return arr;
};


Как в вопросе, 10 элементов, случайные целые от 0 до 10:
const randomArr = () => Array.from({length: 10}, () => (Math.random() * 10) | 0);
// [ 0, 3, 2, 4, 2, 1, 1, 5, 2, 5 ]
Так не исключены повторы значений.

Если же хочется непременно уникальных, взять массив [1, 2, ... 10] и случайно перемешать их:
const randomArr = () => {
  const arr = Array.from({length: 10}, (_, i) => i + 1); // [1, 2, .. 10]
  for (let i = 0; i < 10; i++) {
    const j = i + Math.floor(Math.random() * (10 - i));
    [arr[i], arr[j]] = [arr[j], arr[i]]; // местами поменять
  }
  return arr;
}
// [ 6, 7, 9, 3, 1, 8, 10, 2, 4, 5 ]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы