Javascript: массивы в функциях и как их вызывать - PullRequest
0 голосов
/ 31 августа 2018

Очень плохо знакомый со всем здесь, и я знаю, что мой вопрос должен быть невероятно простым, но для моей жизни я не могу понять это!

Я недавно купил "Javascript & JQuery" Джона Дакетта (который, кстати, мне очень нравится). Тем не менее, когда книга начинает проникать в функции, в частности получать несколько значений из функции на стр. 95, используется следующий пример:

function getSize(width, height, depth) {
  var area = width * height;
  var volume = width * height * depth;
  var sizes = [area, volume];
  console.log(sizes);
}

var areaOne = getSize(3, 2, 3)[0];
var volumeOne = getSize(3, 2, 3)[1];

Всякий раз, когда я запускаю это в своем браузере, я получаю сообщение об ошибке «Uncaught TypeError: Невозможно прочитать свойство« 0 »из неопределенного».

Если кто-то может объяснить мне или указать мне правильное направление относительно того, почему вызов индекса из массива с помощью этого метода для меня не работает. Я просто хочу знать, почему этот пример из книги не сработает.

Заранее спасибо, и спасибо за все, что я узнал до сих пор, используя этот сайт.

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Ваша функция не возвращает ничего ожидаемого вашим кодом: добавьте оператор возврата.

function getSize(width, height, depth) {
  var area = width * height;
  var volume = width * height * depth;
  var sizes = [area, volume];
  console.log(sizes);
  return [area,volume,sizes];
}

var areaOne = getSize(3, 2, 3)[0];
var volumeOne = getSize(3, 2, 3)[1];
0 голосов
/ 31 августа 2018

Вам не хватает для возврата результата массива из функции

function getSize(width, height, depth) {
  var area = width * height;
  var volume = width * height * depth;
  var sizes = [area, volume];
  return sizes;
}

var areaOne = getSize(3, 2, 3)[0];
var volumeOne = getSize(3, 2, 3)[1];
  console.log(areaOne,volumeOne);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...