Помогите новичку, пожалуйста!
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. Пожалуйста, просветите в данном случае. |
Андрей Буржуй,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Андрей Буржуй,
надо свойству присвоить новое значение. |
Андрей Буржуй,
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)) |
Не очень понятно, чего вы хотите.
Но Object.values(menu) создает массив значений свойств объекта. И каждый раз, когда вы пишите Object.values(menu) будет создаваться новый массив |
Это не присвоит значение свойству. Это запишет значение в массив.
|
Спасибо, вопрос закрыт!
Цитата:
|
Часовой пояс GMT +3, время: 09:44. |