功率功能.为什么在循环开始时将结果设置为1
power function. Why set result = 1 at start of loop?
我对下面发布的代码没有问题,因为它运行良好,但我只是希望有人能向我解释var result = 1
的原因。
我现在的理解是,"result*=base"与"result=result*base"相同。在这种情况下,幂不是也只是输入到指数参数中的数字吗?1*10=10等等…提前谢谢!
var power = function(base, exponent) {
var result = 1; // <--- Why this???
for (var count = 0; count < exponent; count++)
result *= base;
return result;
};
console.log(power(2, 10));
因为结果需要是一个有值的数字,然后才能将其乘以另一个数字。CCD_ 2和CCD_ 3
尝试删除它,看看会发生什么:
var power = function(base, exponent) {
var result;
for (var count = 0; count < exponent; count++)
result *= base;
return result;
};
console.log(power(2, 10)); // output: NaN
我现在的理解是,"result*=base"与"result=result*base"相同。在这种情况下,幂不是也只是输入到指数参数中的数字吗?1*10=10等…
您的result *= base
处于循环中。因此,每次遍历循环时,都会用一个新值更新result
变量。所以第一次通过循环时:
result = 1 * 10
下一次你有:
result = 10 * 10
下一个:
result = 100 * 10
等等…
如果您在循环中移动var result = 1
部分,那么您的函数将被破坏,因为result
将在每次迭代中重置。
结果被初始化为零次幂,恰好是1。
然后将它乘以指数乘以基数,得到基数^指数。
所以2^10=1*2*2*2*2。。10次。
有两种方法可以解决问题,
要么你从1开始,把基数乘以n倍(就像你的例子一样),要么你从基数开始,乘以n-1倍:
var result = base;
for (var count = 0; count < exponent - 1; count++)
result *= base;
//this will return wrong result if you call power(2, 0)
第一种情况显然更好,因为基数可以是0。
这个问题的最短答案是因为base ^ 0 = 1
相关文章:
- 如何将JSON结果设置为'src'共'img'以在ASP.NET MVC4中显示图像
- JavaScript没有将结果值设置为<p>'的innerHTML
- 设置为负数的变量计算结果为true
- 从结果集中自动设置谷歌地图缩放
- 正在调用对象中设置的匿名函数,但未得到预期结果
- MongoDB MonkAPI根据数据库请求之外可用的查找结果设置变量
- 如何在 ThreeJS 中应用矩阵转换并将结果设置为默认状态
- _.find 是否返回对对象的引用?如何正确设置结果的属性
- Select2 以编程方式设置搜索词并打开包含相关结果的下拉列表(无 ajax 调用)
- 在变量中设置生成器函数的结果
- 从成功的AJAX帖子中获取结果,并使用globalEval设置HTML
- 在 for 循环中设置间隔以显示结果
- 如何根据信号器请求的结果设置控制器范围
- 如何返回函数结果并将它们设置为标记的内部 HTML
- 将段落文本设置为 JSON 数据结果
- 将计算结果设置为ng样式标签Angular.js的百分比
- 功率功能.为什么在循环开始时将结果设置为1
- 试图将userservice的结果设置为userscomponent
- 在js中查询mongodb并将结果设置为变量
- 将jQuery Ajax请求的结果设置为全局变量