const customer = [10, 10]; // input array
const lemonadeChange = function (bills) {
let five = 0, ten = 0;
bills.forEach((ele, idx) => {
switch (ele) {
case 5:
five += 1;
break;
case 10:
if (five === 0) {
return false; //at this point the function should stop. Instead it proceeds.
}
else {
five -= 1;
ten += 1;
}
case 20:
if (five !== 0 && ten !== 0) {
five -= 1, ten -= 1;
}
else if (five > 2) {
five -= 3;
}
else {
return false;
}
}
})
return true; //the function should be returning false because the variable five has a value of 0;
}
输入:大小为2的整数数组。 结果:是 预期结果:错误。
在Switch为10的情况下,函数lemonadeChange应该返回false并停止执行。取而代之的是,该函数继续在数组中循环,并在循环外返回true。我使用调试器运行代码,但仍然无法弄清为什么案例10的return语句不起作用。谢谢您的帮助,谢谢。
答案 0 :(得分:0)
forEach()
将对bills
中的每个元素执行封闭的函数。 return语句结束函数调用,这仅使forEach()
移至下一个元素。
如果您不想遍历每个元素,则需要使用for循环而不是forEach()
。