【发布时间】:2016-09-22 20:07:53
【问题描述】:
我正在解决一种算法(不想解释我的方法,因为我仍在尝试自己解决它)。但是我在某个特定部分遇到了困难。
function smallestCommons(arr)
{
var rangeArray = [];
var outterArray = [];
var testArray = [];
arr = arr.sort(function(a,b){return a>b});
for(var i=arr[0];i<=arr[1];i++)
{
rangeArray.push(i);
}
for(var j=0;j<rangeArray.length;j++)
{
for(var k=1;k<=100;k++)
{
if(k%rangeArray[j] === 0)
{
outterArray.push([k]);
}
}
}
console.log(outterArray);
}
smallestCommons([1,5]);
代码的第二部分我循环遍历 rangeArray [1,2,3,4,5] 中的项目,并尝试将每个索引的所有倍数(从 1 到 100)插入到不同的数组中。但是我的代码目前正在将每个数字推入其自己的数组中,每个数字都是倍数。我需要它将 rangeArray 的每个索引的所有倍数推入外部数组。因此,对于 j 的每次迭代,我最终都会在不同数组中得到一个包含 rangeArray 的所有倍数的二维数组。
例如,而不是以
结尾outerArray == [[1],[2],[3]...]
我最终会将 1 的所有倍数(最多 100)放入一个数组中,然后将 2 的所有倍数放入另一个数组中,依此类推,看起来像这样。
outerArray == [[1,2,3,4...] [2,4,6,8...] [3,6,9,12...]]
这很难解释,希望我已经清楚了。谢谢。
【问题讨论】:
标签: javascript arrays algorithm multidimensional-array