2011-03-05 5 views
2

Peut-être qu'il est trop tard en Allemagne (1h04) ou peut-être que je manque quelque chose ...Combinant tableaux en Javascript

Comment puis-je combiner ces deux tableaux:

a = [1, 2, 3] and b = [a, b, c] so that i get: [[1, a], [2, b], [3, c]] 

Remerciez et. .. passer plus de temps à dormir! :)

Edit:

Je vois cette fonction est appelée "zip". +1 Connaissance

Et il n'y a pas de fonction intégrée dans JavaScript pour cela. +1 Connaissance

Et j'aurais dû dire que les tableaux sont égaux en longueur. -1 connaissances

+0

Vous êtes les bienvenus! – BoltClock

Répondre

4
Array.prototype.zip = function(other) { 
    if (!Array.prototype.isPrototypeOf(other)) { 
     // Are you lenient? 
     // return []; 
     // or strict? 
     throw new TypeError('Expecting an array dummy!'); 
    } 
    if (this.length !== other.length) { 
     // Do you care if some undefined values 
     // make it into the result? 
     throw new Error('Must be the same length!'); 
    } 
    var r = []; 
    for (var i = 0, length = this.length; i < length; i++) { 
     r.push([this[i], other[i]]);  
    } 
    return r; 
} 
3

supposant que les deux sont égaux en longueur:

var c = []; 

for (var i = 0; i < a.length; i++) { 
    c.push([a[i], b[i]]); 
} 
1

Vous pouvez vérifier underscore.js qui contient beaucoup de fonction d'utilité nécessaire. . Dans votre fonction de cas * _ zip() *

_.zip([1, 2, 3], [a, b, c]); 

résultats comme:

[[1, a], [2, b], [3, c]]