Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите новичку, пожалуйста! (https://javascript.ru/forum/dom-window/84795-pomogite-novichku-pozhalujjsta.html)

Андрей Буржуй 24.12.2022 13:12

Помогите новичку, пожалуйста!
 
let menu = {
wigth: 200,
heith: 300,
title: 'My menu'
}
for (i = 0; i < Object.values(menu).length; i++) {
typeof (Object.values(menu)[i]) === 'number' ? Object.values(menu)[i] = Object.values(menu)[i] * 2 : {}
}
console.log(Object.values(menu))

Выводит значения первоначальных значений menu, не срабатывает Object.values(menu)[i] = Object.values(menu)[i] * 2, хотя console.log(Object.values(menu)[i] = Object.values(menu)[i] * 2) - нормально работает, выводит 400. Пожалуйста, просветите в данном случае.

рони 24.12.2022 13:13

Андрей Буржуй,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 24.12.2022 13:21

Андрей Буржуй,
надо свойству присвоить новое значение.

рони 24.12.2022 13:25

Андрей Буржуй,
let menu = {
            wigth: 200,
            heith: 300,
            title: 'My menu'
        };
        for (const [key, value] of Object.entries(menu)) {
            if (typeof value === 'number') menu[key] *= 2; // menu[key] = menu[key] * 2
        }

        console.log(Object.values(menu))

voraa 24.12.2022 13:27

Не очень понятно, чего вы хотите.
Но Object.values(menu) создает массив значений свойств объекта.
И каждый раз, когда вы пишите Object.values(menu) будет создаваться новый массив

voraa 24.12.2022 13:28

Это не присвоит значение свойству. Это запишет значение в массив.

Андрей Буржуй 24.12.2022 13:43

Спасибо, вопрос закрыт!
 
Цитата:

Сообщение от рони (Сообщение 549480)
Андрей Буржуй,
let menu = {
            wigth: 200,
            heith: 300,
            title: 'My menu'
        };
        for (const [key, value] of Object.entries(menu)) {
            if (typeof value === 'number') menu[key] *= 2; // menu[key] = menu[key] * 2
        }

        console.log(Object.values(menu))

Ваш вариант работает на "Отлично". Спасибо за внятные комментарии.


Часовой пояс GMT +3, время: 09:44.