​Кэширование длины массива в цикле

Программа

Супер

С

У
П
Е
Р
Нет голосов
#1 6 июля 2022 в 01:58

Когда мы только начинаем изучение JavaScript, то обычно используем стандартную конструкцию цикла for: for (let i = 0; i < array.length; i++) {}

Но такой шаблон не совсем оптимален. На каждой итерации цикла длина массива array будет высчитываться заново. Иногда это полезно, но в большинстве случаев эффективнее будет ее кэшировать. Для этого создадим переменную length вместе с определением счетчика цикла. for (let i = 0, length = array.length; i < length; i++) {}

Кэширование длины массива в цикле

Такой цикл будет работать немного эффективнее.

#2 6 июля 2022 в 01:58

То чувство, когда ты на каждом шаге итерации уже знаешь длину массива, но все равно каждый шаг инкрементируешь i, чтобы проверить стала ли равна i array.length или еще нет.

Если вам так важно на каждой итерации не выяснять длину массива, то как на счет не делать каждую итерацию проверку стал i равен длине или нет? В конце концов все значения от 0 до length можно вывести более простым циклом

#3 6 июля 2022 в 01:59

[id242957236|Алина], сам по себе array.length дает инфу о размере массива, цикл для получения информации не нужен. 

Но цикл просто необходим дабы вывести в консоль все значения от 0 до максимальной размерности массива. Вообще сам по себе второй вариант уже представляет оный алгоритм. Я когда писал первый комментарий слишком увлекся демагогией

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.