Помогите новичку, пожалуйста!
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, время: 10:43. |