【问题标题】:Multiply each element from array by every element将数组中的每个元素乘以每个元素
【发布时间】:2018-01-20 16:35:06
【问题描述】:

JavaScript

我需要用 for 循环来做这个, 我想将数组中的每个元素相乘 (2 * 5 * 10 * 12)

例子

var arrNum = [2,5,10,12]

var sum = 0

for(var i = 0; i < arrNum.length; i++) {

sum = arrNum[i] * // I don't know what to do

有什么想法:)?

我做了这样的事情

var arrNum = [2,5,10,12]

var sum = 0
var temp = 1

for(var i = 0; i < arrNum.length; i++){
temp *=arrNumbers[i]
if(i== arrNumbers.length-1){
sum = temp 
}
}

【问题讨论】:

  • 在每次迭代中将每个元素乘以 sum(或者应该称为“乘法”?)(记得关闭 for 循环)
  • 声明一个值为 1 的 product 变量,并在循环内将数组的每个数字乘以 product 并将其分配回 product。
  • @GalAbra 说了什么,但请确保初始化 sum=1。
  • @JohnnyMopp 好电话

标签: arrays for-loop


【解决方案1】:

首先,你总是得到结果为0,因为

您的起始总和条件为 0,然后将其乘以数组中的任何数字将始终为您提供 0。

这是你应该做的 -

var sum = 1

for(var i = 0; i < arrNum.length; i++) {

    sum = arrNum[i] * sum;

}

【讨论】:

    【解决方案2】:

    试试这样的:

    var total = 1;
    
    for (var i = 0; i < arrNum.length; i++) {
        total *= arrNum[i];
    }
    

    【讨论】:

    • 为什么要保留两个单独的变量?
    • @GalAbra 你是对的,对不起。我刚睡醒。已编辑。
    • 那么早上好! ;)
    【解决方案3】:
    var result = [2,5,10,12].reduce(function(a,b){return a*b;});
    

    我认为你的问题需要更多解释,我想你是在 JS 环境中。

    注意ES6的高级功能;我建议深入了解所有这些高级操作。

    请注意,在底层操作将完全是一个 for 循环,但 reduce 隐藏了复杂性并让一切变得更干净。

    【讨论】:

      【解决方案4】:

      把数组的第一个元素放在sum中 然后乘以从 1 开始的 sum * 数组,因为我们将第一个元素放入 sum 中,然后将结果放回 sum 中

      var arrNum = [2,5,10,12]
      
      var sum = arrNum[0]
      
      for(var i = 1; i < arrNum.length; i++) {
        sum = sum * arrNum[i];
      }
      
      console.log(sum);

      【讨论】:

        【解决方案5】:
        I did something like this
        
        var arrNum = [2,5,10,12]
        
        var sum = 0
        var temp = 1
        
        for(var i = 0; i < arrNum.length; i++){
        temp *=arrNumbers[i]
        if(i== arrNumbers.length-1){
        sum = temp 
        }
        }
        

        它有效,但 var sum 不是真正的 0 ...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-08-15
          • 1970-01-01
          • 1970-01-01
          • 2019-03-28
          • 2021-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多