gpt4 book ai didi

javascript - JS 函数创建并插入数组 - 只有第一个元素是 NaN

转载 作者:行者123 更新时间:2023-11-29 10:28:21 24 4
gpt4 key购买 nike

var tipsArray = [];
var finalBillArray = [];
var tip;
var finalBill;

function calculator(bill) {
finalBill = tip + bill;

if (bill < 50) {
tip = bill * 0.2;
} else if (bill >= 50 && bill <= 200) {
tip = bill * 0.15;
} else {
tip = bill * 0.1;
}

tipsArray.push(tip);
finalBillArray.push(finalBill);

}

calculator(124);
calculator(48);
calculator(268);

console.log(tipsArray);
console.log(finalBillArray);

我正在尝试解决 UDEMY 类(class)中的一项任务。并且无法理解,为什么 finalBillArray 中只有第一个元素是 NaN,但其他元素看起来不错。

最佳答案

在您当前的代码中,tip 直到 if (bill... test inside calculator 才分配给 below 分配给 finalBill。分配给 finalBill after 而不是创建 tip,这不仅会结果不会产生 NaN,但也会给您准确的结果(您当前每张账单的小费是根据上一个 账单,不是当前账单):

var tipsArray = [];
var finalBillArray = [];

function calculator(bill) {

var tip;
var finalBill;
if (bill < 50) {
tip = bill * 0.2;
} else if (bill >= 50 && bill <= 200) {
tip = bill * 0.15;
} else {
tip = bill * 0.1;
}

tipsArray.push(tip);
finalBill = tip + bill;
finalBillArray.push(finalBill);

}

calculator(124);
calculator(48);
calculator(268);

console.log(tipsArray);
console.log(finalBillArray);

如果你不喜欢那里的 float ,你也可以使用Math.roundMath.round(tip * 100)/100; 将四舍五入到小数点后两位。 (如果不需要数字,可以用toFixed(2)代替,这样更简单)

var tipsArray = [];
var finalBillArray = [];

function calculator(bill) {

var tip;
var finalBill;
if (bill < 50) {
tip = bill * 0.2;
} else if (bill >= 50 && bill <= 200) {
tip = bill * 0.15;
} else {
tip = bill * 0.1;
}
tip = Math.round(tip * 100) / 100;

tipsArray.push(tip);
finalBill = tip + bill;
finalBillArray.push(finalBill);

}

calculator(124);
calculator(48);
calculator(268);

console.log(tipsArray);
console.log(finalBillArray);

关于javascript - JS 函数创建并插入数组 - 只有第一个元素是 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52622607/

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