2012-05-11 5 views
0

Comment créer à partir du code suivant?tableau multidimensionnel

 var x = [12, 155, 177]; 
     var y = [120, 175, 255]; 
     var z = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300]; 
     var value = []; 



     for (var i = 0; i < x.length; i++) { 

      for (var index = x[i]; index < y[i]; index++) { 

       value.push(z[index]); 

      } 

     } 

     console.log(value); 

ce code génèrent une matrice bidimensionnelle 12-12, 155-175 et 177-255 RESULTAT: [13, ....., 120, 155, ......., Je veux créer un autre tableau dans ce tableau pour obtenir [[13 .... ..., 175], [175, ....., 255]];

jsFiddle: http://jsfiddle.net/minagabriel/SK2vJ/

MERCI

+0

Êtes-vous la même personne qui a demandé à [cette question] (http://stackoverflow.com/questions/10534533/array-push-with-json/10535298#10535298) en utilisant un autre compte? –

Répondre

1

Essayez cette

var x = [12, 155, 177]; 
var y = [120, 175, 255]; 
var z = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300]; 
    var value = []; 



    for (var i = 0; i < x.length; i++) { 

     var temp = [] 

     for (var index = x[i]; index < y[i]; index++) { 

      temp.push(z[index]); 

     } 

     value.push(temp); 

    } 

    console.log(value); 
1

Je ne suis pas tout à fait suivant exactement ce que vous voulez faire, mais voici quelques informations qui devraient aider.

JavaScript ne possède pas de tableaux multidimensionnels. (En fait, les tableaux JavaScript aren't really arrays at all.) Mais vous pouvez avoir un tableau qui a des tableaux comme valeurs d'éléments. Alors:

var i, j, a, sub; 

// Create the main array 
a = []; 

// This loop creates the outermost level 
for (i = 0; i < 10; ++i) { 
    // Here we create the array to store in a[i]: 
    sub = []; 

    // This loop builds it up 
    for (j = 0; j < 20; ++j) { 
     sub[j] = "I'm the element at a[" + i + "][" + j + "]"; // Just a sample value 
    } 

    // Remember this sub-array 
    a[i] = sub; 
} 
console.log("a[1][12] = " + a[1][12]); // "I'm the element at a[1][12]" 

notes clés sur ce qui précède:

  1. Vous devez créer chacun des réseaux subordonnés dans la boucle

  2. Vous n'avez pas pré-affecter ou quoi que ce soit comme ça, vous pouvez étendre un tableau juste en l'assignant à un élément. (push fonctionne également. Il est un peu minuscule plus lent, mais cela ne généralement pas d'importance.)

0

Quelque chose comme cela devrait fonctionner. J'ai également utilisé une boucle for pour générer le tableau z au lieu de l'écrire manuellement.

var x = [12, 155, 177], y = [120, 175, 255], z = [], value = []; 

// generate z, 1 to 300 
for(var i = 1; i<=300; i++) { 
    z.push(i); 
} 

for(var i = 0, len = x.length; i < len; i++) { 
    var arr = []; 
    for(var j = 0; j < y[i]; j++) { 
     arr.push(z[j]); 
    } 

    value.push(arr); 
}