Рубрики
Без рубрики

Как перетасовать элементы в массиве JavaScript

Короткий ответ: позвольте перечислить = [1, 2, 3, 4, 5, 6, 7, 8, 9]. сортировка(() => Математическая случайность() – 0,5) Длинный ответ: Мне нужно было перетасовать элементы в массиве JavaScript. Другими словами, я хотел сделать ремикс элементов массива, расположив их в другом порядке, чем предыдущий. Начиная с такого массива, как этот: [1, 2, 3, 4, 5, 6, 7, 8, 9] Я хотел чего-то другого каждый раз, когда проводил операцию, вот так:

Короткий ответ:

let list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list = list.sort(() => Math.random() - 0.5)

Длинный ответ:

У меня возникла необходимость перетасовать элементы в массиве JavaScript.

Другими словами, я хотел сделать ремикс элементов массива, расположив их в другом порядке, чем предыдущий.

Начиная с такого массива, как этот:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Я хотел чего-то другого каждый раз, когда проводил операцию, вот так:

[4, 8, 2, 9, 1, 3, 6, 5, 7]
[5, 1, 2, 3, 7, 4, 9, 6, 8]
[3, 1, 4, 7, 8, 6, 2, 9, 5]

Вот процесс, который я придумал. Учитывая массив список :

const list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

Мы можем вызвать метод sort() , который принимает функцию, возвращающую значение от -0,5 до 0,5:

list.sort(() => Math.random() - 0.5)

Эта функция выполняется для каждого элемента массива. Вы можете передать 2 элемента массива, например: list.sort((a, b) => Math.random() - 0,5) но в данном случае мы их не используем. Если результат этой операции равен < 0, элементу a присваивается индекс ниже, чем b , и наоборот, если результат > 0.

Вы можете прочитать все подробности о Array.sort() здесь .

Вызов сортировки() в списке не изменяет исходное значение массива.

Теперь вы можете присвоить результат этой операции новой переменной, например:

const shuffled = list.sort(() => Math.random() - 0.5)

или вы также можете перезаписать существующий список, если объявите его как переменную let :

let list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list = list.sort(() => Math.random() - 0.5)

Оригинал: “https://flaviocopes.com/how-to-shuffle-array-javascript/”