user8117346
user8117346

Reputation: 21

Create arrays out of arrays javascript

I have these three arrays:

var arr1 = [a1, b1, c1], arr2 = [a2, b2, c2], arr3 = [a3, b3, c3];

How can I combine these arrays so that I can create arrays like the series of arrays in the bottom using jQuery/javascript?

array1 = [a1, a2, a3]
array2 = [a1, a2, b3]
array3 = [a1, a2, c3]
array4 = [a1, b2, a3]
array5 = [a1, b2, b3]
array6 = [a1, b2, c3]
array7 = [a1, c2, a3]
array8 = [a1, c2, b3]
array9 = [a1, c2, c3]

array10 = [b1, a2, a3]
array11 = [b1, a2, b3]
array12 = [b1, a2, c3]
array13 = [b1, b2, a3]
array14 = [b1, b2, b3]
array15 = [b1, b2, c3]
array16 = [b1, c2, a3]
array17 = [b1, c2, b3]
array18 = [b1, c2, c3]

array19 = [c1, a2, a3]
array20 = [c1, a2, b3]
array21 = [c1, a2, c3]
array22 = [c1, b2, a3]
array23 = [c1, b2, b3]
array24 = [c1, b2, c3]
array25 = [c1, c2, a3]
array26 = [c1, c2, b3]
array27 = [c1, c2, c3]

Upvotes: 0

Views: 105

Answers (1)

Phil
Phil

Reputation: 164776

3 nested loops should be all you need...

var arr1 = ['a1', 'b1', 'c1'], arr2 = ['a2', 'b2', 'c2'], arr3 = ['a3', 'b3', 'c3']

var megaArray = []
for (let i = 0, l = arr1.length; i < l; i++) {
  for (let j = 0, m = arr2.length; j < m; j++) {
    for (let k = 0, n = arr3.length; k < n; k++) {
      megaArray.push([arr1[i], arr2[j], arr3[k]])
    }
  }
}
console.info(megaArray)

Upvotes: 3

Related Questions