如何从连接值的数组中返回整数?

我已经完成了创建小费计算器的简单任务,如下所示:


约翰和他的家人去度假,去了 3 家不同的餐馆。账单分别为 124 美元、48 美元和 268 美元。


为了给服务员小费,John 创建了一个简单的小费计算器(作为一个函数)。他喜欢在账单低于 50 美元时给账单的 20% 小费,当账单在 50 美元到 200 美元之间时给 15% 的小费,如果账单超过 200 美元则给 10% 的小费。


最后,John 想要 2 个数组:


1) 包含所有三个小费(每个账单一个) 2)包含所有三个最终支付金额(账单 + 小费)。


**我遇到的问题是我的 finalAmounts 数组返回连接的值而不是 billAmounts + tips 的所需总和,结果如下:**


支付总额:12418.6、489.60、26826.80


我想要的结果当然是:142.6、47.60 和 294.80


这是我的代码:


var billAmounts = [

    124,

    48,

    268

];


function tipCaluclator(bill) {

    if (bill < 50) {

        percentage = (20/100);

    } else if (bill >= 50 && bill < 200) {

        percentage = (15/100);

    } else { 

        percentage = (10/100);

    }

    var tip = percentage * bill;

    //return tip amount to 2 decimal places

    return tip.toFixed(2);

};=


var tips = [

    tipCaluclator(billAmounts[0]),

    tipCaluclator(billAmounts[1]),

    tipCaluclator(billAmounts[2])

];

console.log('These are the tip amounts: ', tips)


var finalAmounts = [

    billAmounts[0] + tips[0],

    billAmounts[1] + tips[1],

    billAmounts[2] + tips[2]

];

console.log('These are the full amounts: ', finalAmounts);


梦里花落0921
浏览 141回答 3
3回答

拉莫斯之舞

两个主要提示:函数;=后删除tipCaluclator。在.toFixed(2)输出值之前避免调用。这些实际上变成了字符串——它们不再是用于其他计算的数字。通过其他一些更小的代码更新,这是一个工作代码示例(至少据我了解您的任务):const billAmounts = [&nbsp; 124,&nbsp; 48,&nbsp; 268,]const numbersToCurrencyStrings = nums => nums.map(num => `$${num.toFixed(2)}`)const tipCalculator = (bill) => {&nbsp; if (bill < 50) {&nbsp; &nbsp; return bill * .2&nbsp; } else if (bill >= 50 && bill < 200) {&nbsp; &nbsp; return bill * .15&nbsp; }&nbsp; return bill * .1}// Calculate tipsconst tips = billAmounts.map(tipCalculator)console.log('These are the tip amounts: ', numbersToCurrencyStrings(tips))// Add matching tips to billsconst finalAmounts = billAmounts.map((bill, idx) => bill + tips[idx])console.log('These are the full amounts: ', numbersToCurrencyStrings(finalAmounts))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript