【发布时间】:2026-02-19 19:35:01
【问题描述】:
我是一个新手 JS 开发人员,一段时间以来一直在为某个特定问题苦苦挣扎,这有点难以解释(从标题中可以看出),所以如果有帮助,我会连同我的答案一起展示这个问题.
首先使用以下值创建一个名为 data 的对象数组:
- Principal- 2500, time- 1.8, 2.Principal- 1000, time- 5,
- 本金- 3000,时间- 1,
Principal- 2000, time- 3
-
编写一个名为“interestCalculator”的函数,它将数组作为单个参数并执行以下操作:
- 如果本金大于等于2500且时间大于1小于3,则rate = 3
- 如果本金大于等于2500且时间大于等于3,则rate = 4
- 如果本金小于2500或者时间小于等于1,那么rate = 2
- 否则,速率 = 1; 使用以下公式计算每个对象的利息:(本金 * 利率 * 时间)/100。
该函数应返回一个名为“interestData”的对象数组,每个单独的对象都应具有“principal”、“rate”、“time”和“interest”作为键及其对应的值。 在您的 return 语句之前将 'interestData' 数组记录到控制台。 最后,调用/执行函数并传递您创建的“数据”数组。
回答:
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();
}
以上代码在控制台中返回“未定义”。于是我尝试了另一种方式:
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.push())。我很困惑,任何帮助将不胜感激。对不起,很长的帖子。谢谢。
【问题讨论】:
-
在你的
.map回调中没有return。 -
此外,在外部函数中,您执行 `return interestCalculator();`,它递归调用
interestCalculator,但不提供任何输入。
标签: javascript arrays object