此代码http://jsfiddle.net/minagabriel/5MQ77/
var flowShadeBigArray =[] ;
var x = [7, 411, 780]
var y = [286, 712, 1058]
for( var i = 0 ; i< x.length;i++){
for(var index = x[i]; index <= y[i] ; index++ ){
var temp = [] ;
temp.push(index) ;
flowShadeBigArray.push(temp);
}
}
console.log(JSON.stringify(flowShadeBigArray));
生成以下数组
[[7],[8],[9],[10],[11],[12],[13],[14]................[1056],[1057],[1058]]
我想在flowShadeBigArray中创建一个三个数组并拥有[x[i] ... y[i] ]
组合在一起:
例如
[ [ [7]....[286] ] , [ [411]...[712] ] ,[ [780]...[1058] ] ]
注意我仍然需要将这些数字中的每一个保留为数组,以便我可以将其用作其他内容的索引
谢谢答案 0 :(得分:1)
只需将temp
初始化移动到第一个循环,然后移动到第二个循环,将.push()
移动到第二个循环之后(或之前,无关紧要)。
var flowShadeBigArray = [];
var x = [7, 411, 780]
var y = [286, 712, 1058]
for (var i = 0; i < x.length; i++) {
var temp = [];
for (var index = x[i]; index <= y[i]; index++) {
temp.push(index);
}
flowShadeBigArray.push(temp);
}
如果每个单独的数字都属于自己的数组,那么请更改:
flowShadeBigArray.push(temp);
到此:
flowShadeBigArray.push([temp]);
答案 1 :(得分:0)
-edited
function range(from, to) {
var arr = [];
while (from <= to) {
arr.push([i++]);
}
return arr;
}
var result = [];
for (var i=0; i<x.length; i++) {
result.push(range(x[i], y[i]));
}