Задать вопрос
@boluchevskii

Функция, удваивающая числовые свойства объекта. Зачем return?

Создайте функцию multiplyNumeric(obj), которая умножает все числовые свойства объекта obj на 2.

Обратите внимание, что multiplyNumeric не нужно ничего возвращать.
Следует напрямую изменять объект.

Написал код, прошёлся пошагово, переменные удваивались, но результатом был undefined. Понял, что забыл поставить return obj. Подскажите, пожалуйста, подробно, зачем тут return, если мы просто взяли объект и изменили его свойства? Спасибо!

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

function multiplyNumeric(obj) {
   for(key in obj) {
      if (typeof obj[key] === 'number') {
         obj[key] *= 2;
      }
   }
   return obj;
}
 
 console.log( multiplyNumeric(menu) );
  • Вопрос задан
  • 267 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Так это вопрос к вам, зачем вы поставили return.
Подозреваю из-за того, что console.log выводила undefined. Так она и должна была его выводить. По условию возвращать ничего не надо, а результат ничего не возвращающей функции как раз undefined.
--  return obj
--console.log( multiplyNumeric(menu) );
++multiplyNumeric(menu);
++console.log(menu);
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Вот вам без return
let menu = {
   width: 200,
   height: 300,
   title: "My menu"
 };

function multiplyNumeric(obj) {
   for(key in obj) {
      if (typeof obj[key] === 'number') {
         obj[key] *= 2;
      }
   }
}
 
multiplyNumeric(menu); // изменили размер
console.log(menu); // вывели

Теперь если написать console.log(multiplyNumeric(menu)); то в консоль выведется undefined, потому что вы в консоль выводите возвращаемое значение функции multiplyNumeric, а когда она ничего не возвращает, то и выводится undefined.
Обратите внимание, что multiplyNumeric не нужно ничего возвращать.

Так зачем вы добавили return?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы