Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Добавить цикличным методом по еденице к каждому эллементу array (https://javascript.ru/forum/misc/26132-dobavit-ciklichnym-metodom-po-edenice-k-kazhdomu-ehllementu-array.html)

Nadine 27.02.2012 13:56

Добавить цикличным методом по еденице к каждому эллементу array
 
Подскажите каким методом сделать элементарное задание.
К примеру есть
var array=[2, 3, 4, 5, 6];
Каким видом цикла можно каждый элемент array увеличить на 1?
чтоб в итоге было:
3
4
5
6
7
?

рони 27.02.2012 14:03

Nadine,
2 + 1 = 2 ???

Nadine 27.02.2012 14:11

ой.. очепятка

рони 27.02.2012 14:14

Nadine,
значения массива идут по порядку ? и возрастают до увеличения значения на 1 ? цикл обязателен?

Nadine 27.02.2012 14:20

ну цифры могут быть любыми, главное чтоб к каждому был +1.
Ну думаю да, цикл обязателен.
А как можно сделать без цикла? Чтоб к примеру если я что то добавлю в этот массив (новые значения) , то чтоб все считалось без проблем

рони 27.02.2012 14:36

Nadine,
var arr=[2, 3, 4, 5, 6],l = arr.length;
arr[l-1]=arr.shift()+l
alert(arr)

а в чём проблема то у вас перебрать элементы массива циклом?

Mахmaxmaximus 27.02.2012 15:37

рони,
знаешь толк XD

Nadine 27.02.2012 16:09

Цитата:

Сообщение от рони (Сообщение 160196)
Nadine,
var arr=[2, 3, 4, 5, 6],l = arr.length;
arr[l-1]=arr.shift()+l
alert(arr)

а в чём проблема то у вас перебрать элементы массива циклом?

вау.. спасибо большое. метод shift() вобще не знала. сенк.. я только учусь)

Mахmaxmaximus 27.02.2012 16:18

Nadine,
я уточню, вот это он просто сместил элементы.
физически он их не изменил, это такая оптимизация типа.

если тебе нужно пройтись по всем элементам массива? то просто используй этот метод:

var arr = [1,2,3];
alert(arr);

arr.forEach(function(a,b,c){
c[b] = a + 1;
});

alert(arr)


где
a - значение текущей ячейки
b - индекс текущей ячейки
с - ссылка на перебираемый массив

рони 27.02.2012 16:34

Цитата:

Сообщение от Mахmaxmaximus
этот метод

не кросбраузерный на даныый момент
можно простым перебором
var arr=[2, 3, 4, 5, 6];
function g(arr,n)
{
var a = [];
n = n || 1;
for (var i=0; i<arr.length; i++)  {
a[i]=arr[i]+n
}
return a
}
alert(g(arr));
alert(g(arr,2));


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