Подтвердить что ты не робот

Альтернатива JavaScript для каждого цикла

Согласно странице MDN для каждой... в цикле эта конструкция устарела. Есть ли альтернатива, которая делает то же самое? Цикл for... цикла не перебирает нецелые (собственные перечислимые) свойства. Если альтернативы нет, почему они тогда ее осуждают?

4b9b3361

Ответ 1

Есть ли альтернатива, которая делает то же самое?

A for... in loop, в котором первое, что вы делаете в блоке кода, - это скопировать foo[propertyname] в переменную.

Ответ 2

Чтобы перебрать все свойства объекта obj, вы можете сделать это:

for (var key in obj) {
   console.log(key, obj[key]);
}

Если вы хотите избежать унаследованных свойств, вы можете сделать это:

for (var key in obj) {
   if (!obj.hasOwnProperty(key)) continue;
   console.log(key, obj[key]);
}

Ответ 3

Вы можете использовать новые функции ECMAScript 5th Edition:

Object.keys(obj).forEach(function (key) {
    console.log(key, obj[key]);
});