gpt4 book ai didi

javascript - 如何从函数返回一个值,使用该值来制作数学公式并将解决方案(键/值)推送到对象数组?

转载 作者:行者123 更新时间:2023-12-04 00:51:37 25 4
gpt4 key购买 nike

这是我需要解决的练习题:

“1- 首先创建一个名为 data 的对象数组,其值如下:

  1. Principal- 2500, time- 1.8

2. Principal- 1000, time- 5

3. Principal- 3000, time- 1

4. Principal- 2000, time- 3

NB: Each individual object should have 'principal' and 'time' as keys.

2- 编写一个名为“interestCalculator”的函数,它将数组作为单个参数并执行以下操作

  Determine the rate applicable using the conditions:

If the principal is greater than or equal to 2500 and the time is greater than 1 and less than 3, then rate = 3

If the principal is greater than or equal to 2500 and the time is greater than or equal to 3, then rate = 4

If the principal is less than 2500 or the time is less than or equal to 1, then rate = 2

Otherwise, rate = 1;

3- 使用以下公式计算每个单独对象的利息:(本金 * 利率 * 时间)/100。

4- 该函数应返回一个名为“interestData”的对象数组,每个单独的对象都应将“principal”、“rate”、“time”和“interest”作为具有相应值的键。

5- 在返回语句之前将“interestData”数组记录到控制台。

6- 最后,调用/执行该函数并传递您创建的“数据”数组。”

到目前为止我做了什么:我用具有两个属性(主体和时间)及其值的对象创建了数组。然后我创建了一个函数,它将在每个对象中进行循环并计算速率(尚未包含在对象中)然后我想为每个对象返回速率值并计算公式((principal * rate * time)/100) 之后我想创建一个新数组,包括这两个新属性(利率和利息数据)及其值。任何人都可以帮助我解决这个用评论解释的挑战吗?

这是我的代码:

const Data = [
{
principal: 2500, //3
time: 1.8
},
{
principal: 1000, //1
time: 5
},
{
principal: 3000, //1
time: 1
},
{
principal: 2000, //2
time: 3
}
];

const interestCalculator = Data => {
// here I create a forEach loop
Data.forEach(individualData => {
// here I start the rate with empty string
let rate = "";

//use if...else statement to return the rate for each indivual Object
if (individualData.principal >= 2500 && individualData.time > 1 && individualData.time < 3) {
rate = 3;
} else if (individualData.principal <= 2500 || individualData.time <= 1) {
rate = 2;
} else {
rate = 1;
}

return rate;
});

// stoped here and I need help to solve the challenge
};

最佳答案

你几乎完成了,到现在为止都是很好的方法。

首先,您说过“我想创建一个包含这两个新属性的新数组”,然后您应该看看这些 super 方法,

这些方法是相互转换的。因此,使用这些方法,您可以按如下方式深度克隆您的数组:

let newData = JSON.parse(JSON.stringify(Data));

请注意,您可以在 JS 对象中设置新属性,例如,

Object.property = value;

现在,您必须设置 rate属性(property),然后做

// set the property rate
individualData.rate = rate;

同样,您还可以设置其他属性。此外,如果你想检索任何属性,那么你可以简单地做

console.log(Object.property);

所以,您可以按如下方式计算利息

// calculate the interest with the formula
individualData.interest = individualData.principal * individualData.rate * individualData.time / 100;

我们快完成了!最后,记录结果对象数组,return值(value)

return newData;

const Data = [
{
principal: 2500, //3
time: 1.8
},
{
principal: 1000, //1
time: 5
},
{
principal: 3000, //1
time: 1
},
{
principal: 2000, //2
time: 3
}
];

const interestCalculator = Data => {
// The following method is best to deep-clone an array!
// Very important method for development purpose
let newData = JSON.parse(JSON.stringify(Data));

// here I create a forEach loop
newData.forEach(individualData => {
// here I start the rate with empty string
// NO, rate is integer, so initiate it with a number, eg. 0
let rate = 0;

// use if...else statement to return the rate for each individual Object
if (individualData.principal >= 2500 && individualData.time >= 3) {
rate = 4;
} else if (individualData.principal >= 2500 && individualData.time > 1 && individualData.time < 3) {
rate = 3;
} else if (individualData.principal < 2500 || individualData.time <= 1) {
rate = 2;
} else {
rate = 1;
}

///// I ADDED LINES HERE /////

// set the property rate
individualData.rate = rate;

// calculate the interest with the formula
individualData.interest = individualData.principal * individualData.rate * individualData.time / 100;
});

// return the Data array with rate and interest inserted to each objects
return newData; // very important!
};

console.log('Original array', Data);

console.log('New array', interestCalculator(Data)); // log the returned value

编辑:我认为您忘记添加第二个条件来计算费率。我已经在上面的代码片段中添加了它。此外,在您的代码中,关于最后一个条件,您有一个小错字。它是,individualData.principal < 2500 (小于)。

关于javascript - 如何从函数返回一个值,使用该值来制作数学公式并将解决方案(键/值)推送到对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61187259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com