将循环的所有迭代推送到数组中

时间:2016-09-24 02:11:07

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

考虑一下:

//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])   
    }
  }
}
}

我有一个2D数组finalArray,它包含5个元素。每个元素分别由rangeArr的每个元素计数到100。然后我循环遍历外部数组,并遍历由allMultiplesArr[m][n]定义的内部数组中的每个元素。

然后我的目标是声明:如果每个内部数组(allMultiplesArr[m][n])的数字均匀分为rangeArr ALL 元素(意味着1,2 ,3,4,5)然后allMultiples[m][n]推入finalArray

我的代码目前所做的是,它推送的每个数字均匀分配rangeArr中的任何元素,我希望推送那些数字被rangeArr的所有元素均分为finalArray意味着将数字均分为1&amp; 2&amp; 3&amp; 4&amp; 5.这基本上给了我这些数字的常见倍数,最高为100。

1 个答案:

答案 0 :(得分:0)

使用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])   
    }
  }
}