Попарно поменять местами числа массива
Добрый день друзья!
Прошу подсказки ! 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] Подскажите куда смотреть? Спасибо |
Цитата:
|
Цитата:
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,
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);
|
Спасибо!
Решил вот так : for(i=0; i<newNums.length; i+=2){ tmp = newNums[i]; newNums[i] = newNums[i+1]; newNums[i+1] = tmp } console.log(newNums); |
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, время: 21:44. |