Javascript 帮助 w/exercise
Javascript help w/exercise
因此,我坚持使用这段代码数小时。
function amountTocoins(amount, coins) {
if (amount === 0) {
return [];
} else {
if (amount >= coins[0]) {
left = (amount - coins[0]);
return [coins[0]].concat( amountTocoins(left, coins));
} else {
coins.shift();
return amountToCoins(amount, coins);
}
}
}
document.write(amountTocoins(46, [25, 10, 5, 2, 1])); /25, 10, 10, 1
我这里理解的amount是46,coins是25,10,5,2,1,所以后面这个,amount大于等于coins,下一块是:
left = (amount - coins[0]);
基本上是25(零索引),next;
return [coins[0]].concat( amountTocoins(left, coins));
concat() 方法用于合并两个或多个数组,但在这段特定代码中如何合并?输出是:25, 10, 10, 1,我也在上面的代码中注释了。
我希望我描述的很好我的问题
您在此处处理的术语是 recursion
- 函数在其主体内调用自身时出现的现象。您在两个地方(第 6 行和第 9 行)内部调用 amountTocoins
函数。
在你的行中:
return [coins[0]].concat( amountTocoins(left, coins));
连接停止,直到对您的 amountTocoins
函数的新调用被执行并且值 returned。在您的示例中,您的行被解释为:
return [25].concat(amountTocoins(21, [25, 10, 5, 2, 1]))
在您执行 amountTocoins(21, [25, 10, 5, 1, 2])
之前,您的 [25].concat(..)
函数不会被执行。
你会越来越深入,直到你到达停止这个嵌套函数调用(递归)的底线条件。在您的情况下,条件是 amount === 0
,它将 return 您的第一个值与空数组 []
.
连接
注意: 您在上次 amountTocoins
函数调用(第 9 行)中有错字。
因此,我坚持使用这段代码数小时。
function amountTocoins(amount, coins) {
if (amount === 0) {
return [];
} else {
if (amount >= coins[0]) {
left = (amount - coins[0]);
return [coins[0]].concat( amountTocoins(left, coins));
} else {
coins.shift();
return amountToCoins(amount, coins);
}
}
}
document.write(amountTocoins(46, [25, 10, 5, 2, 1])); /25, 10, 10, 1
我这里理解的amount是46,coins是25,10,5,2,1,所以后面这个,amount大于等于coins,下一块是:
left = (amount - coins[0]);
基本上是25(零索引),next;
return [coins[0]].concat( amountTocoins(left, coins));
concat() 方法用于合并两个或多个数组,但在这段特定代码中如何合并?输出是:25, 10, 10, 1,我也在上面的代码中注释了。
我希望我描述的很好我的问题
您在此处处理的术语是 recursion
- 函数在其主体内调用自身时出现的现象。您在两个地方(第 6 行和第 9 行)内部调用 amountTocoins
函数。
在你的行中:
return [coins[0]].concat( amountTocoins(left, coins));
连接停止,直到对您的 amountTocoins
函数的新调用被执行并且值 returned。在您的示例中,您的行被解释为:
return [25].concat(amountTocoins(21, [25, 10, 5, 2, 1]))
在您执行 amountTocoins(21, [25, 10, 5, 1, 2])
之前,您的 [25].concat(..)
函数不会被执行。
你会越来越深入,直到你到达停止这个嵌套函数调用(递归)的底线条件。在您的情况下,条件是 amount === 0
,它将 return 您的第一个值与空数组 []
.
注意: 您在上次 amountTocoins
函数调用(第 9 行)中有错字。