Как написать функцию Javascript, которая возвращает объекты внутри массива в качестве выходных данных - PullRequest
0 голосов
/ 08 апреля 2020

Добрый день всем. У меня есть короткое задание, над которым я должен работать. Он состоит из двух частей. Я сделал первую часть (в меру своих возможностей, но я открыт для лучших способов сделать это), а вторая доставляет мне проблемы. Задача показана ниже:

  • Сначала создайте массив объектов, называемых данными, со следующими значениями:

    1. Главное - 2500, время - 1,8
    2. Принципал-1000, время- 5
    3. Принципал-3000, время- 1
    4. Принципал-2000, время- 3

Примечание: каждый отдельный объект должен иметь «принципал» и «время» в качестве ключей. Напишите функцию с именем «InterestCalculator», которая принимает массив в качестве единственного аргумента и выполняет следующие действия:

Определите применяемую ставку, используя следующие условия:

  • Если принципал больше или равно 2500, а время больше 1 и меньше 3, тогда скорость = 3
  • Если принципал больше или равен 2500, а время больше или равно 3, тогда скорость = 4
  • Если основная сумма меньше 2500 или время меньше или равно 1, тогда скорость = 2
  • В противном случае скорость = 1;

Рассчитать проценты для каждого отдельного объекта по формуле:

(principal * rate * time) / 100.

Функция должна возвращать массив объектов с именем interestData, и каждый отдельный объект должен иметь «принципал», «рейтинг» «время» и «интерес» как ключи с соответствующими значениями. Записывайте массив 'InterestData' в консоль ДО вашего оператора возврата. Наконец, вызовите / выполните функцию и передайте созданный вами массив данных. *

Как вернуть объект из функции с помощью клавиш?

Это то, что я уже пробовал

const objArr = [{
    "principal": 2500,
    "time": 1.8
  },
  {
    "principal": 1000,
    "time": 5
  },
  {
    "principal": 3000,
    "time": 1
  },
  {
    "principal": 2000,
    "time": 3
  }
]

//console.log(objArr.length)

function interestCalculator(array) {
  let rate = 0;
  let interestData = [];
  array.forEach(function(entry) {
    if (entry.principal >= 2500) {
      if (entry.time > 1.5 && entry.time < 3) {
        rate = 3;
      } else if (entry.time >= 3) {
        rate = 4;
      }
    } else if (entry.principal < 2500 || entry.time <= 1) {
      rate = 2;
    } else {

      rate = 1;
    }

    const interest = (entry.principal * rate * entry.time) / 100;
    interestData.push(entry.principal, rate, entry.time, interest);
    //return interest;
  })
  console.log(interestData.length);
}

interestCalculator(objArr);

Заранее спасибо.

1 Ответ

0 голосов
/ 08 апреля 2020

Для построения объекта используйте обозначение {key: value, key2: value2, ...}

interestData.push(
  {
    "principal": entry.principal, 
    "rate": rate, 
    "time": entry.time, 
    "interest": interest
  }
);

const objArr = [{"principal": 2500, "time": 1.8}, 
  {"principal": 1000, "time": 5}, 
  {"principal": 3000, "time": 1}, 
  {"principal": 2000, "time": 3}]

function interestCalculator(array) {
  let rate = 0;
  let interestData = [];
  array.forEach(function(entry) {
    if (entry.principal >= 2500) {
      if (entry.time > 1.5 && entry.time < 3) {
        rate = 3;
      } else if (entry.time >= 3) {
        rate = 4;
      }
    } else if (entry.principal < 2500 || entry.time <= 1) {
      rate = 2;
    } else {
      rate = 1;
    }

    const interest = (entry.principal * rate * entry.time) / 100;
    interestData.push({
      "principal": entry.principal,
      "rate": rate,
      "time": entry.time,
      "interest": interest
    });
  })
  console.log(interestData);
}

interestCalculator(objArr);
...