TransWikia.com

Задача на объекты в JavaScript

Stack Overflow на русском Asked by Listopad02 on November 13, 2021

Короче говоря, я новичок в JS и вот решал задачу. Смысл задачи: если значение объекта является числом (number), то его значение надо увеличить вдвое. Вот рабочий код:

let menu = {
    width: 200, 
    height: 300,
    title: "my menu"
};

function multiplyNumeric (obj) {
    for (let key in obj) {
        if (typeof obj[key] === "number") {
            obj[key] *= 2;
        }
    }
}

multiplyNumeric(menu);

Возможно, мой вопрос глупый, но почему этот же код не работает через точечную нотацию? Я имею ввиду вот так:

let menu = {
    width: 200, 
    height: 300,
    title: "my menu"
};

function multiplyNumeric (obj) {
    for (let key in obj) {
        if (typeof obj.key === "number") {
            obj.key *= 2;
        }
    }
}

multiplyNumeric(menu);

One Answer

Потому что у объекта нет свойства, которое называется key.

Название свойства, к которому Вы пытаетесь обратиться через точку obj.key, не имеет никакого отношения к локальной переменной key.

let menu = {
    width: 200, 
    height: 300,
    title: "my menu"
};

let key = 'title';
console.log(menu.width);
console.log(menu.key);

Answered by Igor on November 13, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP