Ну я же выше объяснил.
|
Там написано, что так сделано в ECMA и что все как зомби должны повторять, я же хочу понять, почему в ECMA так сделали. На мой взгляд, методы числовых массивов должны работать с ними именно как с числовыми массивами, а не как с ассоциативными, это довольно логично звучит, но в ECMA какая-то другая логика, вот ее я и хочу понять.
|
forEach/map/... перебирают элементы массива. В твоём примере в массиве только один элемент под индексом 5. Вот если бы ты написал
arr = []; arr[0] = undefined; arr[1] = undefined; // ... arr[4] = undefined; arr[5] = 'TEXT'; alert( arr.reduce(function(a, n) { return a + n; }, '') );Всё логично, перебираются элементы массива, если элемента нет, то нет. |
Цитата:
|
ну, в защиту Riim, можно сказать, что arr.length == 6
только это не логика, это соглашение ;) Разработчики решили, что в числовых массивах могут быть пропущены элементы |
Цитата:
if ( filter( el, i ) ) { или такого if(filter(el,i)){ я предпочту что-то типа if( filter(el, i) ){ |
А надо бы
if (filter(el, i)) { |
Часовой пояс GMT +3, время: 13:40. |