【问题标题】:How to write a Javascript function that returns objects inside an array as outputs如何编写一个将数组内的对象作为输出返回的Javascript函数
【发布时间】:2020-04-08 17:23:32
【问题描述】:

大家好。我有一个我应该做的简短任务。它有两个部分。我已经完成了第一部分(尽我所能,但我愿意接受更好的方法),而第二部分给我带来了问题。任务如下图:

  • 首先使用以下值创建一个名为 data 的对象数组:

    1. 本金- 2500,时间- 1.8
    2. 本金- 1000,时间- 5
    3. 本金- 3000,时间- 1
    4. 校长- 2000,时间- 3

注意:每个单独的对象都应该有“主要”和“时间”作为键。 编写一个名为“interestCalculator”的函数,它将数组作为单个参数并执行以下操作:

使用条件确定适用的费率:

  • 如果本金大于等于2500且时间大于1小于3,则rate = 3
  • 如果本金大于等于2500且时间大于等于3,则rate = 4
  • 如果本金小于2500或者时间小于等于1,那么rate = 2
  • 否则,速率 = 1;

使用公式计算每个单独对象的兴趣:

(principal * rate * time) / 100.

该函数应返回一个名为interestData 的对象数组,并且每个单独的对象应具有“principal”、“rate”、“time”和“interest”作为键及其对应的值。 在您的 return 语句之前将 '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);

提前致谢。

【问题讨论】:

    标签: javascript arrays loops object push


    【解决方案1】:

    要构建一个对象,请使用符号{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);

    【讨论】:

      猜你喜欢
      • 2019-10-18
      • 2012-07-17
      • 2021-03-02
      • 2018-04-17
      • 2013-08-23
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 2021-08-29
      相关资源
      最近更新 更多