JS 구현 의 전체 배열 조합 알고리즘 예시

본 고의 실례 는 JS 가 실현 한 전체 배열 조합 알고리즘 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
전체 배열 조합 알고리즘,예 를 들 어 a,b,c,d 를 전체 배열 조합 하면 조합 결 과 는 a,b,ab,c,ac,bc,abc,d,ad,bd,abd,cd,acd,bcd,abcd 이다.실현 사고:데이터 소스 에서 하나의 요 소 를 꺼 내 존재 하 는 조합 데이터 와 순서대로 조합 하고 데이터 소스 가 데이터 가 없 을 때 까지 순환 합 니 다.
예:
데이터 원본 a,b,c
1.a 를 꺼 내 고 조합 데이터 group 이 비어 있 으 며 데이터 원본 a 요 소 를 조합 데이터 group 에 삽입 합 니 다.이때 group=[a]
2.b 를 꺼 내 고 조합 데이터 group 은 a,a 와 b 를 조합 하여 ab 를 얻 고 데이터 소스 b 요소,ab 를 조합 데이터 group 에 삽입 합 니 다.이때 group=[a,b,ab]
3.c 를 꺼 내 고 조합 데이터 group 은 a,b,ab 를 꺼 내 각각 c 와 조합 하여 각각 ac,bc,abc 를 얻 고 데이터 소스 c 요소,ac,bc,abc 를 조합 데이터 group 에 삽입 합 니 다.이때 group=[a,b,ab,c,ac,bc,abc]
js 코드:

var data = ['a','b','c','d'];
function getGroup(data, index = 0, group = []) {
  var need_apply = new Array();
  need_apply.push(data[index]);
  for(var i = 0; i < group.length; i++) {
    need_apply.push(group[i] + data[index]);
  }
  group.push.apply(group, need_apply);
  if(index + 1 >= data.length) return group;
  else return getGroup(data, index + 1, group);
}
console.log(getGroup(data));

출력 결과 실행:

자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기