Какой самый быстрый способ перебрать массив в JavaScript?
В JavaScript доступно большое количество циклов для выполнения итераций. Следующие циклы вместе с их синтаксисом поддерживаются JavaScript.
цикл for: цикл for включает инициализацию переменной, условие для оценки переменной и выражение для определения завершения цикла. Он выполняет фиксированное количество итераций, поэтому его необходимо использовать в сценариях, где количество повторений цикла известно ранее.
В случае констант у нас есть следующий синтаксис:
// цикл for, который выполняет 10k итераций for (let i = 0; i <10000; i ++) { // Заявления }
В случае массивов:
// Цикл, который продолжается до конца // массива for (i = 0; i <array.length; i ++) { // Заявления }
Цикл while: цикл while выполняет инициализацию снаружи, до начала цикла, затем проверяется условие, а затем оценивается выражение. Выполнение цикла while продолжается до тех пор, пока не будет выполнено условие.
В то время как цикл в случае массивов, следуйте синтаксису как:
// инициализация пусть x = 0; // Проверка условий while (x <= arr.length + 1) { // Приращение х + = 1; }
Цикл .forEach (): каждый элемент массива подчиняется функции, выполняющей некоторую операцию или задачу. Функция указывается как параметр метода forEach в JavaScript. Он выполняет высокоэффективные задачи, где требуется функциональный код. По сути, это функция обратного вызова, сильно зависящая от выполняемой внутри операции.
// Evaluation is performed element // wise of the array let arr = [] arr.forEach((ele) => { // Statements })
for… of Loop: это новая версия цикла for. Этот цикл требует присвоения временного имени каждому элементу массива. Он работает очень быстро в случае небольшого набора данных. Он гораздо более читабелен по сравнению с традиционным циклом for. Он выполняет итерацию над встроенными в JavaScript объектами итерации, такими как String, Map, Set и Array.
for (let val of arr) { // Заявления }
Сравнение производительности циклов, доступных в JavaScript:
- В случае нескольких итераций цикла и когда размер массива слишком велик, цикл for является предпочтительным как самый быстрый метод итерации элементов.
- Циклы while обеспечивают эффективное масштабирование в случае больших массивов.
- В случае функциональных кодов каждый цикл работает лучше с гораздо оптимизированным временем.
- В случае меньших итераций и меньших наборов данных или операций, которые используются время от времени, forEach () выполняется с большей скоростью.
- Оптимизированная версия цикла for предназначена для имитации кэширования длины, т. Е. Для хранения длины массива, чтобы предотвратить его повторное вычисление.
Поэтому предпочтение отдается циклу for с альтернативой кеширования длины.