![]() |
|
||||||||||
|
|||||
|
В подавляющем большинстве случаев, все равно как обходить массив. Если уж дело уперлось в скорость обхода массива, то лучше поменять решение на такое, которое исключит обход.
У for each есть другой момент, если какой-нибудь коллега с ректальной дисплазией верхних конечностей, влупит массиву динамическое свойство, то его значение также будет перечислено.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
.
|
Например, есть необходимость обращаться к значениям массива строго по порядку индексов.
Я немного приустал в этом топе мысли излагать. Пожалуй, это последнее мое сообщение в нем. |
|
|||||
|
Ну так я за тебя
![]() for each не может гарантировать порядок, как минимум для Array. Мой комментарий был о том, что рассматривать варианты обхода массива как "оптимизацию" (в ущерб читаемости, кстати) гиблое дело.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
имеем код:
Цитата:
maxStack:2 localCount:5 initScopeDepth:9 maxScopeDepth:10
getlocal0
pushscope
pushundefined
coerce_a
setlocal2
getlocal0
constructsuper (0)
newarray [0]
coerce :Array
setlocal1
pushbyte 0
setlocal3
getlocal1
coerce_a
setlocal 4
jump L0
L1: label
getlocal 4
getlocal3
nextvalue
coerce_a
setlocal2
L0: hasnext2 4 3
iftrue L1
kill 4
kill 3
returnvoid
0 Extras
0 Traits Entries
Цитата:
__________________
местонахождение Последний раз редактировалось СлаваRa; 15.03.2016 в 15:28. |
|
|||||
|
Как я уже писал, Array динамический объект... если кто-нибудь добавит ему свойство, его значение также будет перечислено. С Vector такое не пройдет. К тому же, если у Object имена свойств будут являться числами, порядок перечисления значений через for each тоже не будет меняться (видимо это было необходимо для реализации Array).
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Ну если кто-то хочет сделать array['field'] = 10, флаг ему в руки, я не хотел этот пример рассматривать))
(я еще в начале разговора уточнил, что мое заявление не относится к динамике)
__________________
местонахождение |
|
|||||
|
Ну вот тебе другой пример: Array не является плотным массивом, при обходе через for each будут перечислены только явно заданные свойства, в отличие от for и while.
__________________
משיח לא בא משיח גם לא מטלפן |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|