所以我需要很少arrays
:
array 1 = [1,9,17,25,33,41];
array 2 = [2,10,18,26,34,42];
等。
因此,每个array
将最后一项加起来为8
但是,我需要动态生成它(使用JavaScript中的函数)。
答案 0 :(得分: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));
&#13;
答案 1 :(得分: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);");
}
}
答案 2 :(得分: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;
}
答案 3 :(得分: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)