Igor Rodichev, С числами вы можете выполнять что угодно, с массивом вы не можете получить элемент с номером length, потому что в силу описанных мною причин такового не существует
lJser, Не знаю причины, так как никогда этого не делаю. На момент написания комментария ваш ответ состоял из "Тут полное раздолье для творчества. Любой программист только обрадуется такой задачке." потом вы уже стали что-то дописывать, но даже это дописывание больше похоже на размышления чем на ответ. Это безусловно флуд.
ещё быстрее не обращаться к свойству длины на каждой итерации
Здесь зависит от реализации в браузере, в хроме насколько я знаю этот очевидный момент оптимизирован, думаю и в остальных браузерах тоже. При компиляции проверяется не меняется ли длина массива внутри цикла, и если не меняется, то они автоматом сохраняют ее в переменную, так что такие вещи не дают никакого выигрыша и только запутывают код.
dollar, Теоретически да, но у меня ни разу за годы практики не было массивов, где индексы не шли бы по порядку, обычно в таких случаях используются объекты, поэтому данным случаем наверное можно пренебречь.
dollar, Также на всякий случай замечу, что filter поставляет в функцию индекс элемента вторым параметром, посему использование дополнительной переменной не обязательно
dollar, Суть это немного все ж таки меняет, так как скорость будет отличаться в разы, поскольку основные времязатраты в подобных операциях уходят как раз на перебор.
Не очень эффективно перебирать весь массив, проверяя индексы, зная точно при этом что от 80 до 99 процентов из них условие не пройдут. Почему бы их просто не вычислить сразу?
Приведите пример данных и что вы хотите получить в результате. И что значит "json объект"? Json - Это формат хранения данных, json-объект - понятие бессмысленное.