Javascript - Калькулятор процентов продолжает возвращать неопределенный результат - PullRequest
1 голос
/ 02 апреля 2020

Я новичок ie JS разработчик, который какое-то время боролся с конкретной проблемой, это довольно сложно объяснить (как видно из названия), поэтому я покажу проблему вместе с моим ответы, если это поможет.

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

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

  4. Напишите функцию под названием "InterestCalculator «который принимает массив в качестве единственного аргумента и выполняет следующие действия:

    • Если принципал больше или равен 2500, а время больше 1 и меньше 3, тогда скорость = 3
    • Если принципал больше или равен 2500, а время больше или равно 3, тогда скорость = 4
    • Если принципал меньше 2500 или время меньше или равен 1, тогда скорость = 2
    • В противном случае скорость = 1; Рассчитайте проценты для каждого отдельного объекта, используя формулу: (принципал * ставка * время) / 100.

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

ОТВЕТ:

 const Data = [
    {
        Principal: 2500,
        Time: 1.8
    },
    {
        Principal: 1000,
        Time: 5
    },
    {
        Principal: 3000,
        Time: 1
    },
    {
        Principal: 2000,
        Time: 3
    }
];

let rate;
 const interestCalculator = (array) =>{
     const interestData = array.map(item =>{
         const {Principal, Time} = item;
         if(Principal>=2500 && Time >= 1 && time < 3){
             rate = 3;
         }
         else if(Principal>=2500 && Time >= 3){
             rate = 4;
         }
         else if(Principal<2500 || Time <= 1){
             rate=2;
         }
         else{
             rate = 1;
         }

         const interest = (Principal * rate * Time)/100;

         item.interest = interest;
         item.rate= rate;
     });
     console.log(interestData);
     return interestCalculator();
 }

Приведенный выше код возвращает «undefined» в консоли. Поэтому я попробовал другой способ:

const interestCalculator = (item) =>{
    let rate;
    if(Principal>=2500 && Time >= 1 && time < 3){
        rate = 3;
    }
    else if(Principal>=2500 && Time >= 3){
        rate = 4;
    }
    else if(Principal<2500 || Time <= 1){
        rate = 2;
    }
    else{
        rate = 1;
    }
const interest = (Principal * rate * Time)/100;
const interestData = [item.Principal, item.rate, item.Time, item.interest];
console.log (interestData);
return interestCalculator();

}

Все еще не определено ... Я пробовал разные методы (foreach (), arr.pu sh ()), о которых я знаю в настоящее время, но безрезультатно. Я довольно озадачен, и любая помощь будет принята с благодарностью. Извините, за длинную статью. Спасибо.

1 Ответ

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

Вам нужно return item изнутри .map() и вызвать interestCalculator с Data в качестве аргумента, как показано ниже:

const Data = [{
    Principal: 2500,
    Time: 1.8
  },
  {
    Principal: 1000,
    Time: 5
  },
  {
    Principal: 3000,
    Time: 1
  },
  {
    Principal: 2000,
    Time: 3
  }
];

let rate;
const interestCalculator = (array) => {
  const interestData = array.map(item => {
    const {
      Principal,
      Time
    } = item;
    if (Principal >= 2500 && Time >= 1 && Time < 3) {
      rate = 3;
    } else if (Principal >= 2500 && Time >= 3) {
      rate = 4;
    } else if (Principal < 2500 || Time <= 1) {
      rate = 2;
    } else {
      rate = 1;
    }

    const interest = (Principal * rate * Time) / 100;

    item.interest = interest;
    item.rate = rate;
    
    return item;
  });
  
  return interestData;
}

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