Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Попарно поменять местами числа массива (https://javascript.ru/forum/misc/67068-poparno-pomenyat-mestami-chisla-massiva.html)

Leviko 26.01.2017 16:28

Попарно поменять местами числа массива
 
Добрый день друзья!
Прошу подсказки !
var newNums= [1,2,3,4,5,6,7,8,9,10,11,12],
i,
result ="",
summa =0;

необходим результат [3,4,1,2,7,8,5,6,11,12,9,10]

Подскажите куда смотреть?
Спасибо

ksa 26.01.2017 16:40

Цитата:

Сообщение от Leviko
Подскажите куда смотреть?

Циклы... Массивы...

ksa 26.01.2017 16:51

Цитата:

Сообщение от Leviko
var	newNums= [1,2,3,4,5,6,7,8,9,10,11,12]
,
необходим результат
[3,4,1,2,7,8,5,6,11,12,9,10]

Или добей препода таким ответом. :D

var arr=[1,2,3,4,5,6,7,8,9,10,11,12];
var val=arr.toString();
val=val.replace(/(\d+),(\d+),(\d+),(\d+)/g,'$3,$4,$1,$2');
arr=val.split(',');
alert(arr);

Leviko 26.01.2017 16:57

Ох епт... страшно, как-то смотрится...

laimas 26.01.2017 16:59

https://developer.mozilla.org/ru/doc...s/Array/splice

рони 26.01.2017 17:50

Leviko,
var newNums= [1,2,3,4,5,6,7,8,9,10,11,12];
var result = newNums.map(function(el, i, arr) {
  return  i % 4 < 2 ? arr[i + 2] : arr[i - 2];
});
alert(result);

Leviko 26.01.2017 20:19

Спасибо!

Решил вот так :
for(i=0; i<newNums.length; i+=2){
tmp = newNums[i];
newNums[i] = newNums[i+1];
newNums[i+1] = tmp
}
console.log(newNums);

Dilettante_Pro 27.01.2017 13:46

Leviko,
Незачет.
Результат не такой, как в задании.
var	newNums= [1,2,3,4,5,6,7,8,9,10,11,12],
i, tmp;
for(i=0; i<newNums.length; i+=2){
tmp = newNums[i];
newNums[i] = newNums[i+1];
newNums[i+1] = tmp
}
alert(newNums);

А вот такой, как надо
var	newNums= [1,2,3,4,5,6,7,8,9,10,11,12],
i, result = [];
for(i=0; i<newNums.length; i+=4){
result.push( newNums[i + 2], newNums[i + 3], newNums[i],newNums[i+1]);
}
alert(result);


Часовой пояс GMT +3, время: 18:13.