2016-07-19 52 views
-2

所以我需要一些arrays生成數字的排列在一定的算法

array 1 = [1,9,17,25,33,41]; 
array 2 = [2,10,18,26,34,42]; 


所以每個array增加了8到最後一個項目。
但是,我需要動態生成(使用JavaScript中的函數)。

+0

你不會得到任何代碼在這裏 –

+1

請告訴我們您做了一些努力了。我們可以幫助您解決出錯的地方。 – evolutionxbox

+0

有人剛剛給我發了一個答案,而其他人刪除了它,誰發佈我喜歡感謝他。 – unm4sk

回答

3

var initValue = 5; 
 
var diff = 8; 
 
var len = 5; 
 

 
function makeDiffArray(initValue, diff, len) { 
 
    for (var i = 0, arr = []; i < len; i++) { 
 
    arr.push(initValue); 
 
    initValue += diff; 
 
    } 
 
    return arr; 
 
} 
 
console.log(makeDiffArray(initValue, diff, len));

+1

雖然我喜歡這個答案,但是當他們沒有表現出任何努力時,爲什麼要給OP提供所有的代碼? – evolutionxbox

+0

@evolutionxbox這就是我刪除它的原因..後來想到保持它... – Rayon

+0

謝謝。思考這件事情時,我的大腦完全停止了。 – unm4sk

2

像這樣的事情?

for(var i = 1; i<10;i++){ 
 
    eval("var array" + i + " = [" + i + "];"); 
 
    for(var j = 1; j<10; j++){ 
 
    eval("array" + i + ".push(array" + i + "[array" + i + ".length] + 8);"); 
 
    } 
 
}

+0

我想操作系統會希望兩條線包裹在另一個循環來定義第一個數組項目號(array1以1開頭,array2以2等​​)。 – evolutionxbox

1

您也可以嘗試動態變量名

var arrayCount = 2; 
var initValue = 5; 
var diff = 8; 
var len = 5; 

for(var i=1; i<=arrayCount; i++) { 
    window['array'+i] = makeAnArray(i,diff,len); 
    alert(window['array'+i]); 
} 

function makeAnArray(initValue) { 
    var anArray = []; 
    for (var j = 0, init = initValue; j < len; j++) { 
    anArray.push(init); 
    init += diff; 
    } 
    return anArray; 
} 
0

我知道這已經被接受,只是想在這裏添加ES6版本。

let [init, diff, len] = [5, 8, 5], tmp = init; 
 
let arr = Array(len).fill(init).map((x, i) => (i) ? tmp += diff : x); 
 
console.log(arr)