кроме я могу перетасовать массив с этой функциейПеремешать массив для JavaScript даже индекса
function getBadlyShuffledList(list) {
var length = list.length;
var i;
var j;
while (length) {
i = Math.floor(Math.random() * length--);
j = list[length];
list[length] = list[i];
list[i] = j;
}
return list;
}
console.log(getBadlyShuffledList([1,2,3,4,5,6]));
Проблема в том, я должен оставить индекс, которые делятся на два в своих местах. Я пробовал использовать оператор if, и он получает индекс, если он равен 2 или 4, но тогда я не знаю, что делать, чтобы он оставался на месте.
Например, если у меня есть массив [1, 2, 3, 4, 5, 6] При перетасовке 3 и 5 должны оставаться на месте. ех; [2, 4, 3, 1, 5, 6] Как мне это сделать?
не то, что в то время как бесконечный цикл, так как длина не меняется – depperm
@depperm, 'длина -' <- это не изменение. –
Ваш пример и ваши требования не совпадают. Если это индексы (или индексы, но не индексы :)), делящиеся на 2, это должны быть индексы 0, 2 и 4, или числа 1, 3 и 5. –