2016-04-18 3 views
0

Если у меня есть несколько массивов (я не знаю, сколько, или их длина)Объединить массивы в Javascript

arr1 = ["a","b","c"]; 
arr2 = ["red","green"]; 
arr3 = ["10","11","12","13"]; 

И я хотел бы иметь что-то вроде

res = [ 
      ["a","red","10"], ["a","red","11"], 
      ["a","red","12"],["a","red","13"], 
      ["a","green","10"],["a","green","11"], 
      ... 
    ]; 

Вы знаете, объединить их ... Я не знаю количество массивов или длину. И конечным результатом будет один массив со всеми возможными комбинациями.

+0

Будут ли все они имеют одинаковую длину? – Tuvia

+0

Если вы хотите, чтобы многомерный массив просто создавал новый массив и вставлял в него каждый дополнительный массив. 'var arr = []; arr.push (arr1); arr.push (arr2); 'и т. д. Если вы можете сделать это программно, это зависит от того, как вы получаете свои массивы в первую очередь. – ste2425

+1

Это выглядит немного сложнее, чем те предложения, ему нужна каждая комбинация каждого элемента массива. – IrkenInvader

ответ

-2

Чтобы создать единый массив, вы должны использовать метод массива reduce.

/** @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce#Examples */ 
 

 
var arr1 = ["a", "b", "c"], 
 
    arr2 = ["red", "green"], 
 
    arr3 = ["10", "11", "12", "13"], 
 
    flattened = [arr1, arr2, arr3].reduce(function(a, b) { 
 
    return a.concat(b); 
 
    }, []); 
 

 
alert(flattened);

Смежные вопросы