31.03.2012, 11:16
|
|
сегодня в 12:34|Комментир
|
|
Регистрация: 12.04.2011
Сообщений: 1,180
|
|
метод forEach
Часто начал встречать подобный метод, особенно у ливаандриамарума, можете объяснить как он работает?
Вот например:
<script>
var a = [1,2,3]
a.forEach(function (/* что здесь за аргументы? */) {
// увеличить каждый элемент массива на 1
})
Как выполнить?
__________________
оляля, ололо
|
|
31.03.2012, 11:52
|
С++/C# modest developer
|
|
Регистрация: 07.11.2011
Сообщений: 244
|
|
Сообщение от 9xakep
|
Как выполнить?
|
так понятно будет?
var a = [1,2,3];
a.forEach(function(el, idx, a) {
console.log('a['+idx+'] = '+el+' in ['+a+']');
});
Точно не помню, но вроде в IE < 9 не работает, могу ошибаться...
|
|
31.03.2012, 11:54
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
|
|
31.03.2012, 12:02
|
|
сегодня в 12:34|Комментир
|
|
Регистрация: 12.04.2011
Сообщений: 1,180
|
|
Сообщение от nekto_O
|
так понятно будет?
var a = [1,2,3];
a.forEach(function(el, idx, a) {
console.log('a['+idx+'] = '+el+' in ['+a+']');
});
Точно не помню, но вроде в IE < 9 не работает, могу ошибаться...
|
ага, все кажется разобрался)
То есть первый аргумент, это элемент с индексом idx, второй это как i в for(i=0;i<arr.length;i++). И третий это непосредтсвенно сам массив. Thanks
var a = [1,2,3];
a.forEach(function(el, idx, a) {
a[idx] += 1
console.log(a[idx])
});
А если мы укажем:
var a = [1,2,3]
a.forEach(function (a,b) { /* это будут el и idx? То есть если нужно получить массив("а" у вас, то мне по-любому придется печатать 3 аргумента? */
})
Kolyaj,
Спасибо почитаю
__________________
оляля, ололо
Последний раз редактировалось 9xakep, 31.03.2012 в 12:06.
|
|
31.03.2012, 12:18
|
|
сегодня в 12:34|Комментир
|
|
Регистрация: 12.04.2011
Сообщений: 1,180
|
|
Я правильно понимаю, что map это тупое перебирание всех элементов и что-то с ними делание?
var a = [1,2,3]
var b = a.map(function(c) {
return c+1
})
alert(b)
var e = a.map(function(v) {
return v + 'c'
})
alert(e)
__________________
оляля, ололо
|
|
31.03.2012, 12:23
|
|
''
|
|
Регистрация: 11.12.2011
Сообщений: 636
|
|
Сообщение от 9xakep
|
то мне по-любому придется печатать 3 аргумента
|
Ну при желании объект arguments к вашим услугам
Последний раз редактировалось Раед, 22.04.2012 в 01:10.
|
|
31.03.2012, 12:35
|
|
сегодня в 12:34|Комментир
|
|
Регистрация: 12.04.2011
Сообщений: 1,180
|
|
<script>
var a = [1,2,3]
a.forEach(function () {
arguments[2][arguments[1]] +=1
})
alert(a)
</script>
Так что ли? Так мне легче уж аргументы написать чем так..
__________________
оляля, ололо
Последний раз редактировалось 9xakep, 31.03.2012 в 12:38.
|
|
31.03.2012, 12:36
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от 9xakep
|
Я правильно понимаю, что map это тупое перебирание всех элементов и что-то с ними делание?
|
Kolyaj же дал ссылку на подробное описание этих методов, неа?
Или тут
arguments[2][arguments[1]] += 1
Последний раз редактировалось monolithed, 31.03.2012 в 12:39.
|
|
31.03.2012, 12:41
|
|
сегодня в 12:34|Комментир
|
|
Регистрация: 12.04.2011
Сообщений: 1,180
|
|
monolithed,
эм...так я прочитал ее и спрашиваю
__________________
оляля, ололо
|
|
31.03.2012, 12:43
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Кстати можно так:
alert([].map.call([1,2,3], function (i) {
return i + i;
}));
|
|
|
|