Как поменять местами элементы в массиве JS
Необходимо создать массив, элементы которого вводит пользователь.
Ввод некорректного значения прекращает ввод чисел.
Произвести такую замену:
1 элемент поменять с 2, 3 элемент поменять с 4, 5 элемент поменять с 6 и тд.
Если длина массива нечетная - последний элемент не трогать.
Пример: было 1 2 3 4 5 6, должно стать: 2 1 4 3 6 5
Вот что пока получилось:
let arr = [];
let index = 0;
while(index >= 0) {
let digit = +prompt('enter a digit');
if (isNaN(digit)) {
break;
}
arr[index] = digit;
index++;
}
console.log(arr);
for (var res = [], j = arr.length - 1; j >= 0; j -= 4)
res.unshift (arr [j - 2]), res.unshift (arr [j - 3]),
res.unshift (arr [j]), res.unshift (arr [j - 1]);
alert (res);
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
let a = [1,2,3,4,5,6,7];
for (let i = 0; i < a.length - 1; i += 2) {
let t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
console.log(JSON.stringify(a));
Автор решения: Aziz Umarov
→ Ссылка
Можно так, через деструктурирующее присваивание. Воспользовался ответом @Igor
let a = [1,2,3,4,5,6,7];
for (let i = 0; i < a.length - 1; i += 2) {
[a[i], a[i + 1]] = [a[i+1], a[i]];
}
console.log(JSON.stringify(a));