La puoi semplificare in questo modo, ti crei un array di oggetti ed ogni oggetto avrà come elemento 0 l'indice corrente del primo array e l'indice corrente del secondo come elemento 1:
codice:
Array.prototype.joinArrays = function(firstArray, secondArray) {
for (var x = 0; x < firstArray.length; x++) {
var mainElement = firstArray[x];
for (var i = 0; i < secondArray.length; i++) {
var obj = new Object();
obj[0] = firstArray[x];
obj[1] = secondArray[i];
this.push(obj);
}
}
return this;
};
a = new Array ("a","b","c");
b = new Array (1,2,3,4,5);
c = [];
c.joinArrays(a,b)
Il risultato sarà:
Variable _level0.c = [object #3, class 'Array'] [
0:[object #4, class 'Object'] {
0:"a",
1:1
},
1:[object #5, class 'Object'] {
0:"a",
1:2
},
2:[object #6, class 'Object'] {
0:"a",
1:3
},
3:[object #7, class 'Object'] {
0:"a",
1:4
},
4:[object #8, class 'Object'] {
0:"a",
1:5
},
5:[object #9, class 'Object'] {
0:"b",
1:1
},
6:[object #10, class 'Object'] {
0:"b",
1:2
},
7:[object #11, class 'Object'] {
0:"b",
1:3
},
8:[object #12, class 'Object'] {
0:"b",
1:4
},
9:[object #13, class 'Object'] {
0:"b",
1:5
},
10:[object #14, class 'Object'] {
0:"c",
1:1
},
11:[object #15, class 'Object'] {
0:"c",
1:2
},
12:[object #16, class 'Object'] {
0:"c",
1:3
},
13:[object #17, class 'Object'] {
0:"c",
1:4
},
14:[object #18, class 'Object'] {
0:"c",
1:5
}
]