gpt4 book ai didi

javascript - 从 switch 语句返回一个值

转载 作者:行者123 更新时间:2023-12-03 01:12:30 27 4
gpt4 key购买 nike

我是网络开发(JS)新手,我知道有很多主题与我的标题相匹配,但没有回答类似的问题,或者可能因为我是新手,找不到。

在下面的代码中,我想要我的函数和 switch 语句,从数组(账单)中检索值并计算新值,将其分配到数组中一个新的不存在的位置tips 。作为最终结果,我希望函数根据具体情况返回带有值的 tips 数组。

我知道解决这个问题的另一种方法,无论如何,我想知道这里出了什么问题,因为解决的想法首先出现在我的脑海中,并且我认为它会起作用。

这是我的代码:

var tips = [];
var bills = [124, 48, 264];

function tipCalc(bills, tips){
switch(bills){
case bills < 50:
tips[0] = bills[1] * 0.2;
break;

case bills > 50:
tips[1] = bills[0] * 0.5;
break;

default:
console.log('no tips left.');
}
return tips;
}

tips = tipCalc(bills[0]);
console.log(tips);

enter code here

最佳答案

让我们稍微分解一下这段代码并讨论它的作用

var tips = [];
var bills = [124, 48, 264];

这部分在全局范围内声明两个变量,任何函数都可以访问这两个变量以进行读写(重要 - Google JS 闭包)。

function tipCalc(bills, tips){
switch(bills){

您现在已经启动了一个函数,该函数调用开关来评估账单的值(value)。因为您传入的是 bills[0],所以它将评估 bills[0] (124)。它还接受名为 Tips 的第二个参数,该参数是未定义的,因为调用函数时没有传入第二个参数。

case bills < 50:
tips[0] = bills[1] * 0.2;
break;

这部分已损坏。如果将其更改为 if 语句,则其计算结果将为 false。

case bills > 50:
tips[1] = bills[0] * 0.5;
break;

也坏了。如果更改为 if 语句,它将评估为 true 并被执行,但它将执行未定义的操作。如果您没有第二个参数(也名为 tips),那么您将把全局 tips 设置为 62。

    default:
console.log('no tips left.');
}

这是当前应该执行的部分,因为它是唯一一个在其他两种情况结构不正确的情况下可以成立的部分。

  return tips;
}

将返回未定义,因为提示(在函数本身的范围内)开始时为未定义并且尚未更改。

  tips = tipCalc(bills[0]);
console.log(tips);
enter code here

破坏整个程序,应该是开头带有//的注释。

关于javascript - 从 switch 语句返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52158197/

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