Меню

Перечисление свойств в объектах javascript

17.05.2018 - java script, ЯП

Enumerating properties (Перечисляемые свойства)

Иногда вам нужно пройтись по или перечислить свойства объекта.

Мы можем сделать это используя цикл for-in (for-in loop).

for (let key in circle) {
    console.log(key);
}

Каждую итерацию (проход), key будет содержать значение одного из ключей этого объекта. Например если объект circle содержит свойство radius и метод draw, то вышеуказанный цикл выведет в консоль radius и draw.

Теперь чтобы получить значения этих свойств, воспользуемся bracket notation (скобочной нотацией). Укажем переменную key как свойство объекта circle на каждой итерации.

for (let key in circle) {
    console.log(key, circle[key]);
}

Что если мы хотим вывести только свойства, без методов. Мы можем воспользоваться оператором typeof, чтобы проверять тип значения circle[key].

for (let key in circle) {
    if (typeof circle[key]) {
        console.log(key, circle[key]);
    }
}

Есть также другой подход, как получить ключи объекта.

У встроенного объекта Object есть метод keys(), в который мы можем передать наш объект circle, и он вернёт все ключи в объекта circle в виде массива.

const keys = Object.keys(circle);

Но при данном подходе мы не сможем отделить свойства от методов.

И наконец, иногда вам захочется узнать, есть ли у объекта определенное свойство. Для этого воспользуемся оператором in.

Синтаксис очень простой:

if ('radius' in circle) {
    console.log("YES, circle has a radius");
}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *