Javascript 在每个i值处使用for循环乘以一个数字

Javascript 在每个i值处使用for循环乘以一个数字,javascript,Javascript,我是Javascript新手,现在正在关注freecodecamp。据我所知,我认为我应该能够将一个数字乘以I,每次它在for循环中改变时,乘以I本身的值。我这样做是因为我在尝试分解。我偷看了一下答案,他们使用了一个factorialize类型的javascript函数或其他什么。我仍然希望使用我自己的编码来解决这个问题。我该怎么做 下面是我已经尝试过的代码 function factorialize(num) { for (let i = 1; i < num; i++) {

我是Javascript新手,现在正在关注freecodecamp。据我所知,我认为我应该能够将一个数字乘以I,每次它在for循环中改变时,乘以I本身的值。我这样做是因为我在尝试分解。我偷看了一下答案,他们使用了一个factorialize类型的javascript函数或其他什么。我仍然希望使用我自己的编码来解决这个问题。我该怎么做

下面是我已经尝试过的代码

function factorialize(num) {
  for (let i = 1; i < num; i++) {
   let answer = i * num;
  }
  return answer;
}

如果我为一个数字输入10,我希望它取10的阶乘,即10*9*8*7*6*5*4*3*2*1。我希望这对0也能起作用,但我们总是可以从我的原始问题开始。

在循环之前需要声明和初始化答案,并且需要取I和答案进行乘法

如果已将1作为起始值,则可以从第二个值开始循环。您还需要最后一个值

值得一读:

函数因式化枚举{ 让答案=1;
对于let i=2;i您需要在循环之前声明并初始化答案,并且需要取i和答案进行乘法

当你已经有1作为起始值时,你可以从第二个值开始循环。你还需要最后一个值

值得一读:

函数因式化枚举{ 让答案=1; 对于let i=2;i您也可以始终使用while循环:

函数因式化枚举 { 让答案=1; 而num>0 { 答案=答案*num; num-; } 返回答案; } 0的console.logResult:,阶乘化0; console.logResult为5:,因子化5; console.logResult为10:,因子化10; .as控制台{背景颜色:黑色!重要;颜色:石灰;} .作为控制台包装{max height:100%!important;top:0;}您也可以始终使用while循环:

函数因式化枚举 { 让答案=1; 而num>0 { 答案=答案*num; num-; } 返回答案; } 0的console.logResult:,阶乘化0; console.logResult为5:,因子化5; console.logResult为10:,因子化10; .as控制台{背景颜色:黑色!重要;颜色:石灰;}
.作为控制台包装{最大高度:100%!重要;顶部:0;}在循环外声明答案。啊。想解释一下为什么需要在循环外而不是在循环内声明答案吗?我对所有这一切都很陌生。感谢您的帮助。let语句的工作方式与var不同。在您的代码中,变量本质上是循环代码块的私有变量,因此在循环代码块外是不可见的。我可以在fo内使用var吗r循环以获得所需的因式分解效果?在循环外声明答案。啊。是否要解释为什么需要在循环外而不是在循环内声明答案?我对所有这些都很陌生。感谢您的帮助。let语句的工作方式与var不同。在您的代码中,变量本质上是循环代码块的私有变量,因此不可见外部。我可以在for循环内部使用var来获得所需的因子化效果吗?谢谢你,你是MVP!想解释一下为什么这个答案需要在for循环/外部之前初始化或声明吗?为什么我不能做我所做的?用let声明内部会使变量只在块内部可见,而值不能I don’’我不会改变为持有所有值的乘积。顺便说一句,这条逻辑线对我来说很自然,但我会尝试学习下面建议的其他方法,尤其是递归方法,因为这就是在freecodecamp上解决问题的方法。Nina说得通,谢谢。如果我使用我最初提出的解决方案,但使用var inst呢ead?零正在停止递归,因为这个值的性质和返回值1。你是MVP,谢谢!想解释一下为什么这个答案需要在for循环之前初始化或声明吗?为什么我不能做我所做的事情?用let声明inside会使变量只在块内部可见,而值不能I don’’我不会改变为持有所有值的乘积。顺便说一句,这条逻辑线对我来说很自然,但我会尝试学习下面建议的其他方法,尤其是递归方法,因为这就是在freecodecamp上解决问题的方法。Nina说得通,谢谢。如果我使用我最初提出的解决方案,但使用var inst呢ead?由于这个值和返回值1的性质,零正在停止递归。我真的很喜欢递归解决方案,因为它看起来很简短,特别是三元运算符。请解释一下为什么else返回num*factorializenum-1;会实际返回num的阶乘?@overshow什么是5*4!?它是5!.哦,所以在函数本身的三元结尾处调用函数就是它不断递归重复的原因。我对这是如何发生的感到困惑。我理解阶乘是如何工作的,只是不知道编码是如何做到的。我认为
nk不过我现在更明白了。@Overshower当然,我会尝试一个基本的例子。假设我们调用factorialize3,那么我们在第一次调用中得到3*factorialize2。现在,这个表达式将简化为3*2*factorialize1,依此类推,直到我们得到3*2*1*1/*这是factorialize0*/返回的。另外请注意,接受的答案应该是@Nina Scholz,因为它解释了您最初的问题。我只是想提供一些替代品。我非常欣赏替代品。这是一个离题的话题,但一旦我了解了所有这些我希望尽可能多地学习的语言,我是否必须回到学校去获得CS/或w/e的证书,或者我是否可以以某种方式进入这一职业生涯?我在健康/债务方面遇到了问题,所以很难回到学校。我真的很喜欢递归解决方案,因为它看起来很简短,特别是三元运算符。请解释一下为什么else返回num*factorializenum-1;会返回num的阶乘吗?@超量搜索什么是5*4!?五点了!。哦,所以在函数内部的三元数结束时调用函数就是它不断递归重复的原因。我不知道那是怎么发生的。我理解阶乘是如何工作的,只是不知道编码是如何做到的。“我想我现在更了解它了。”当然,我会尝试一个基本的例子。假设我们调用factorialize3,那么我们在第一次调用中得到3*factorialize2。现在,这个表达式将简化为3*2*factorialize1,依此类推,直到我们得到3*2*1*1/*这是factorialize0*/返回的。另外请注意,接受的答案应该是@Nina Scholz,因为它解释了您最初的问题。我只是想提供一些替代品。我非常欣赏替代品。这是一个离题的话题,但一旦我了解了所有这些我希望尽可能多地学习的语言,我是否必须回到学校去获得CS/或w/e的证书,或者我是否可以以某种方式进入这一职业生涯?我有健康/债务问题,所以回学校不容易。