考虑一下:
//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。
答案 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])
}
}
}