2016-12-04 1 views
-3

세 개의 배열이 있고 기본적으로 Javascript에서 하나의 슈퍼 배열로 병합하려고합니다. 필자는 그들의 길이와 3 개의 배열이 모두 설정되었는지를 반드시 알 필요가 없습니다. 이는 기본적으로 필터링 시스템을위한 것입니다.JavaScript 배열 병합 값

따라서 범주 배열, 작성자 배열 및 형식 배열이 있습니다. 그들은 모두 고유 키를 저장합니다.

그래서 ... 종류가 될 수 [Cat1,Cat2]
저자 [Author7,Author8]
유형은 [Type9,Type11]

이이 값으로 가능한 조합 등을

그래서
[ 
    Cat1 Author7 Type9, 
    Cat1 Author7 Type11, 
    Cat1 Author8 Type9, 
    Cat1 Author8 Type 11, 
    Cat2 Author7 Type9, 
    Cat2 Author7 Type11, 
    Cat2 Author8 Type9, 
    Cat2 Author8 Type 11, 
] 

의 종류를 다른 배열을 만들 수 있습니다 될 수있다 배열에서. 때로는 하나 또는 두 개의 어레이가 비어있을 수 있습니다. if 문을 여러 개 만들 수 있지만 더 좋은 방법이 있어야합니다.

감사합니다.

+0

읽고 [질문]과 녹색을 참조하십시오 바를 게시하기 전에 바. –

답변

0

당신은 불과 3 중첩 된 foreach는() 루프가 필요합니다

var cat = ["Cat1","Cat2"]; 
 
var author = ["Author7","Author8"]; 
 
var type = ["Type9","Type11"]; 
 
var result = [] 
 

 
cat.forEach(x => author.forEach(y => type.forEach(z => result.push(x.concat(y).concat(z))))); 
 
console.log(result);
유형이 비어있는 경우 :

var cat = ["Cat1","Cat2"]; 
 
var author = ["Author7","Author8"]; 
 
var type = []; 
 
var result = [] 
 

 
cat.forEach(x => author.forEach(y => type.length === 0 ? result.push(x.concat(y)) : type.forEach(z => result.push(x.concat(y).concat(z))))); 
 
console.log(result);

+0

유형이 []와 같으면이 옵션이 작동하지 않습니다. 어떤 아이디어? –

+0

유형이 비어있는 경우 해결책을 추가했습니다. –