-1

我有这个简单的javascript代码:

function power(base, exponent) {
  var result = 1;
  for (var count = 0; count < exponent; count++)
    result = result * base;
  return result;
}

power(2, 10);

但是我很难理解 for 循环和 for 循环中的结果之间的关系。任何人都可以在这里描述这个过程吗?我知道答案是 1024 并且是 2*2*2*2*2*2*...... 但我很难理解 for 和 result 是如何相关的。结果总是1?还是以某种方式从循环中获取更新版本?谢谢!

4

4 回答 4

2

数字是完全没有必要的。数组 [0....x] 的长度是 x。所以你的 for 循环真的是 for (var i = 0; i < 10; i++)。希望能解决。此外,您不想去 10,而是去指数。尝试:

for (var i = 0; i < exponent; i++)
于 2013-06-27T12:32:29.337 回答
2

你为什么不写这个?

function power(base, exponent) {
  var result = 1;

  for (var i = 0; i < exponent; i++)
    result = result * base;

  return result;
}

或者还有e javascript-integrated方式

Math.pow(base, exponent);
于 2013-06-27T12:33:28.147 回答
2

说我通过power(2, 10)。以下是每次迭代的运行方式:

i | result
--+-------
- | 1
0 | 1 * 2 = 2
1 | 2 * 2 = 4
2 | 4 * 2 = 8
.
.
.
9 | 512 * 2 = 1024

但是,numbers数组是多余的。您需要检查exponent( i < exponent)

于 2013-06-27T12:35:21.677 回答
0

当您使用 power(2,10) 调用函数时,您将变量“base”值设为 2,然后将结果(即 1)乘以 2 10 次,我认为没有使用第二个变量“exponent”

于 2013-06-27T12:36:45.983 回答