Как использовать объект в качестве параметра в моей функции и как вызвать функцию - PullRequest
0 голосов
/ 06 февраля 2019

Мой код работает отдельно (объект печатается, математическая формула вычисляется правильно), однако я не понимаю, как связать объект в формуле и заставить его напечатать мой окончательный ответ.

Единственное мнениеЯ знал, что это разные имена параметров, но я не знаю, как они работают.

// Assignment 2
// Write a function that accepts one parameter to calculate ...
// ... the surface area of the outside of a box


// Introducing the object & asking the user for the three measuremeants

let sides = {
    a: prompt ("Enter the measuremeants of side A"),
    b: prompt ("Enter the measuremeants of side B"),
    c: prompt ("Enter the measuremeants of side C")
    };

// console.log(sides.a + sides.b + sides.c);  - testing object

// Introducing the function

function calcArea(sides) {

// let a=1 let b=3 let c=4 - testing math formula
let surfaceArea = 2*a*b + 2*b*c + 2*a*c;
console.log("Side A=" + a + ", Side B=" + b + ", Side C=" + c);
console.log("The area is: " + surfaceArea);
};

//Recalling the function
calcArea(surfaceArea);

Это ожидания того, что должна делать моя программа:

  • СоздатьПеременная объекта, которая будет хранить длину всех трех сторон поля.
  • Запрашивать у пользователя длину трех сторон и сохранять их в объекте, используя свойства a, b и c.
  • Создайте функцию с именем calcArea, которая принимает один параметр - объект, который мы создали ранее.Используя формулу ниже, рассчитайте и верните площадь поверхности.(2ab + 2bc + 2ac)

  • Используйте строки шаблона для отображения трех сторон рамки и конечной площади поверхности с описательным текстом.

Например:

Side A=3, Side B=4, Side C=5
The area is: 94

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

a, b и c - это свойства / ключи sides, доступ к которым вы должны получить через этот объект.Кроме того, ваша функция calcArea настроена на прием параметра sides, но в настоящее время она вызывается с помощью переменной функции surfaceArea, которая в данный момент находится вне области действия.

let sides = {
    a: prompt ("Enter the measuremeants of side A"),
    b: prompt ("Enter the measuremeants of side B"),
    c: prompt ("Enter the measuremeants of side C")
    };

function calcArea(sides) {
  // To access object properties, use "dot notation" (object.property).
  // You can't simply try to access the property directly.
  let surfaceArea = 2 * sides.a * sides.b + 2 * sides.b* sides.c + 2 * sides.a * sides.c;
  console.log("Side A=" + sides.a + ", Side B=" + sides.b + ", Side C=" + sides.c);
  console.log("The area is: " + surfaceArea);
};

calcArea(sides);  // You have to pass your sides object into the function.
0 голосов
/ 06 февраля 2019

Поскольку функция использует автономные переменные a, b и c, вы можете передать объект в функцию и немедленно деструктурировать свойства a, b и c,позволяя вам ссылаться на них как на отдельные переменные и использовать их в вашей формуле:

const sides = {
  a: prompt("Enter the measuremeants of side A"),
  b: prompt("Enter the measuremeants of side B"),
  c: prompt("Enter the measuremeants of side C")
};
function calcArea({ a, b, c }) {
  const surfaceArea = 2 * a * b + 2 * b * c + 2 * a * c;
  console.log("Side A=" + a + ", Side B=" + b + ", Side C=" + c);
  console.log("The area is: " + surfaceArea);
};
calcArea(sides);

Без деструктурирования или извлечения в отдельные переменные вам придется изменить каждую ссылку на a, b и c внутри функции на sides.a, sides.b и sides.c:

const sides = {
  a: prompt("Enter the measuremeants of side A"),
  b: prompt("Enter the measuremeants of side B"),
  c: prompt("Enter the measuremeants of side C")
};

function calcArea(sides) {
  const surfaceArea = 2 * sides.a * sides.b + 2 * sides.b * sides.c + 2 * sides.a * sides.c;
  console.log("Side A=" + sides.a + ", Side B=" + sides.b + ", Side C=" + sides.c);
  console.log("The area is: " + surfaceArea);
};
calcArea(sides);

Чтобы также использовать литералы шаблона, используйте обратные метки вместо " разделителей и конкатенации:

const sides = {
  a: prompt("Enter the measuremeants of side A"),
  b: prompt("Enter the measuremeants of side B"),
  c: prompt("Enter the measuremeants of side C")
};
function calcArea({ a, b, c }) {
  const surfaceArea = 2 * a * b + 2 * b * c + 2 * a * c;
  console.log(`Side A=${a}, Side B=${b}, Side C=${c}`);
  console.log(`The area is: ${surfaceArea}`);
};
calcArea(sides);

Вы также можете заметить, что обычно лучше использовать const, а не let - let для случаев, когда вам нужно переназначить переменная позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...