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);
Потому что у объекта нет свойства, которое называется 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
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP