- 1
eval( array.join('+') );
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+161
eval( array.join('+') );
Конечно, я понимаю что всякие Haskel там, то, сё...
for-in - это конкатенация строк, т.как ключи ВМ всегда приводит к строкам. Их хотя бы нужно было обратно кастовать к числам.
eval - будет ухудшаться с увеличением длины массива, при чем скачкообразно, с шагом *128 (по крайней мере в Мозиловской ВМ) Это, конечно, если стека вообще хватит.
недобраузеры негодуют
http://jsperf.com/array-summing/6
Lisp скорее
Любителям нетривиальных подходов посвящается. Вряд ли оно будет быстрее, но врага с толку собъет - почти наверняка.
Кстати, еще вариант, теперь, думаю, подчитал Упанишад, и Шива должен быть доволен.
Кстати, в отличие от ожидаемого результата, он не просто плохой, он удивительно хреновый. Я даже и предположить не мог, что все на столько плохо.
ЛолШТО? Goto в js? Там только брейки.
>он не просто плохой, он удивительно хреновый.
Правильно. Извраты и говнохаки должны, нет просто обязанны дико тормозить.
В данном случае изврат же не для того, чтобы чего-то конкретного добиться, а чтобы посмотреть, что именно оно делает. Очевидно что JIT тупо заточен под какие-то тривиальные случаи, и умеет их оптимизировать, но в целом плохо понимает жабоскриптовксий код / плохо справляется с более общими операциями. А они понадобятся, когда в Жабоскрипте захотят, например, с картинками работать, фильтры там всякие, хистограмы и т.п. Ну и звуки да и вообще все, что требует менее тривиальных рассчетов.
Это жж не спроста!