【问题标题】:Pushing all iterations of a loop into an array将循环的所有迭代推入数组
【发布时间】:2017-02-01 23:13:02
【问题描述】:

考虑一下:

//finalArray = [];

//rangeArr = [1,2,3,4,5]

//allMultiplesArr = [[1,2,3,4...100],[2,4,6,8...100],[3,6,9,12...100],[4,8,12,16...100],[5,10,15,20...100]]

for(var m=0;m<allMultiplesArr.length;m++)
{
  for(var n =0;n<allMultiplesArr[m].length;n++)
{
    for(var l =0;l<=rangeArr.length;l++)
    {
    if(allMultiplesArr[m][n] % rangeArr[l]  == 0)
    {
    ///finalArray.push(allMultiples[m][n])   
    }
  }
}
}

我有一个包含 5 个元素的二维数组 finalArray。每个元素分别由rangeArr 的每个元素最多计数100。然后我遍历外部数组,并遍历由allMultiplesArr[m][n] 定义的内部数组中的每个元素。

那么我的目标是声明:如果每个内部数组(allMultiplesArr[m][n])的数字被平均分为rangeArrALL元素(意思是1,2,3,4 ,5) 然后allMultiples[m][n] 推入finalArray

我的代码目前所做的是,它推送被rangeArr 中的任何元素均分的每个数字,我希望它 推送那些均分的数字通过rangeArr 的所有元素到finalArray 意思是推ONLY 被1 & 2 & 3 & 4 & 5 均分的数字。这基本上给了我这些数字的公倍数,向上到数字 100。

【问题讨论】:

  • 恭喜?...有问题吗?
  • 是的,我现在的 finalArray 最终会得到许多数字,所有这些数字都被 1 或 2 或 3 等除。我只希望插入那些被全部平均除以的数字.例如,rangeArr 中所有数字的倍数,而不仅仅是其中任何一个。请重新阅读问题。我已经尽力说清楚了
  • “我只希望插入被 全部均分的那些。” 这到底是什么意思?你应该做一个minimal reproducible example
  • 好的,让我为你分解一下。现在,它将遍历我的二维数组。并遍历内部数组中的所有数字。如果这些数字中的任何一个被 (1,2,3,4,OR,5) 均分,它将被插入到最终数组中。我希望它仅在数字被所有(1,2,3,4,AND 5 ..所有这些,而不仅仅是其中一个)均分时才插入finalArray,例如60是一个可接受的数字。 2 不是。
  • @zer00ne 嘿伙计,如果您参考下面的答案,您会发现它正是我想要的。您能否向我建议如何以这种方式改写我的问题,以达到下面提供的正确答案?或者也许考虑一下自从我收到确切答案以来已经足够清楚的可能性?谢谢。

标签: javascript arrays for-loop multidimensional-array conditional


【解决方案1】:

使用javascript每个函数来检查天气所有元素是否符合条件。

for(var m=0;m<allMultiplesArr.length;m++) {
  
  for(var n =0;n<allMultiplesArr[m].length;n++) {
    
    var valid = rangeArr.every(function(range){
      return (allMultiplesArr[m][n] % range  == 0) 
    });
    
    if(valid) {
      finalArray.push(allMultiplesArr[m][n])   
    }
  }
}

【讨论】:

  • 非常感谢!这正是我一直在寻找的。​​span>
猜你喜欢
  • 2021-11-17
  • 1970-01-01
  • 2014-11-12
  • 2012-11-28
  • 2016-11-22
  • 2012-02-18
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
相关资源
最近更新 更多