for each...in

Інструкція for each...in є застарілою, як частина стандарту ECMA-357 (E4X). Підтримка E4X була прибрана. Розгляньте натомість використання for...of.

Firefox застерігає від використання інструкції for each...in, вона більше не працює, починаючи з Firefox 57. Будь ласка, дивіться Застереження: цикли JavaScript 1.6 for-each-in є застарілими для допомоги у міграції.

Інструкція for each...in перебирає вказаною змінною усі значення властивостей об'єкта. Для кожної окремої властивості виконується вказана інструкція.

Синтаксис

for each (variable in object) {
  statement
}
variable
Змінна для перебору значень властивостей, може бути оголошена ключовим словом var. Ця змінна є локальною для функції, а не для циклу.
object
Об'єкт, чиї властивості перебираються.
statement
Інструкція, що виконуватиметься для кожної властивості. Щоб виконати більше однієї інструкції у циклі, використовуйте блок ({ ... }), щоб згрупувати ці інструкції.

Опис

Деякі вбудовані властивості не перебираються. Серед них усі вбудовані методи об'єктів, наприклад, метод indexOf об'єкта String. Однак, усі властивості, визначені користувачем, перебираються.

Приклади

Використання for each...in

Застереження: Ніколи не використовуйте цикл на масивах таким чином. Використовуйте його лише на об'єктах. Дивіться більше подробиць у for...in.

Наступний код перебирає властивості об'єкта, обчислюючи їхню суму:

var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};

for each (var item in obj) {
  sum += item;
}

console.log(sum); // виводить "26" як результат 5+13+8

Специфікації

Не є частиною жодного стандарту.

Сумісність з веб-переглядачами

Ніде не підтримується. Історично підтримується у Firefox від 1.5 до 56.

Див. також

  • for...in - схожа інструкція, що перебирає імена властивостей.
  • for...of - схожа інструкція, що перебирає значення властивостей, але може використовуватись лише для ітерабельних типів, а отже, не для звичайних об'єктів
  • for