Итерация в JavaScript: Циклы for...of и for...in

Цикл for...of

Цикл for...of предназначен для итерации по значениям элементов итерируемых объектов. Такие объекты включают в себя массивы, строки, объекты Set и Map.

const iterable = [10, 20, 30];

for (const element of iterable) {
  console.log(element);
}
// Output:
// 10
// 20
// 30

В этом примере мы проходимся по каждому элементу массива iterable и выводим его значение.

Особенности for...of:

  1. Итерация по значениям: Цикл for...of перебирает элементы коллекции по их значениям, что делает его удобным для использования с массивами и другими коллекциями, где важно получить доступ к самим элементам, а не к их индексам.

  2. Не поддерживает итерацию по свойствам объектов: for...of не может использоваться для итерации по свойствам объектов. Он предназначен только для итерации по значениям итерируемых объектов.

Цикл for...in

Цикл for...in используется для перебора свойств объекта, включая их перечисляемые (enumerable) свойства и свойства прототипа.

const obj = {a: 1, b: 2, c: 3};

for (const key in obj) {
  console.log(key + ': ' + obj[key]);
}
// Output:
// a: 1
// b: 2
// c: 3

В этом примере мы перебираем свойства объекта obj и выводим ключ и значение каждого свойства.

Особенности for...in:

  1. Итерация по свойствам объекта: Цикл for...in проходит по всем перечисляемым свойствам объекта, включая свойства его прототипа.

  2. Не рекомендуется для массивов: Использование for...in для итерации по массивам не рекомендуется из-за возможности перебора и других свойств, таких как length, и свойств прототипа массива, что может привести к неожиданному поведению.

Заключение

Используйте цикл for...of, когда вам нужно перебрать значения элементов коллекции, таких как массивы или строки. В то время как цикл for...in стоит применять для перебора свойств объекта, включая его прототип. Помните об этих различиях при выборе подходящего метода итерации в JavaScript.

Комментарии

Коментарии отсутствуют, будьте первым(ой) кто напишет под этим постом!

Написать коментарий