0

此代码 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] ] ]

注意我仍然需要将这些数字中的每一个都保存为一个数组,这样我就可以将它用作其他东西的索引

谢谢

4

2 回答 2

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);
}

http://jsfiddle.net/5MQ77/1/

如果每个单独的数字都属于它自己的数组,那么改变这个:

flowShadeBigArray.push(temp);

对此:

flowShadeBigArray.push([temp]);
于 2012-05-11T20:23:57.883 回答
0

-编辑

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]));
}
于 2012-05-11T20:25:31.347 回答