숫자 배열을 첫 번째 인수로, 단일 숫자를 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.
함수는 추가될 때 배열의 두 번째 인수로 지정된 합계를 제공하는 배열에서 이러한 요소를 선택해야 합니다. 함수는 추가될 때 필요한 합계를 제공하는 모든 숫자 하위 배열의 배열을 반환해야 합니다.
순서는 중요하지 않으며 필요한 경우 합계를 생성하기 위해 하나의 숫자를 두 번 이상 사용할 수 있습니다.
예를 들어 -
입력 배열과 합이 -
인 경우const arr =[14, 6, 10]; const 합계 =40;
그러면 출력은 다음과 같아야 합니다. -
상수 출력 =[ [ 14, 14, 6, 6 ], [ 14, 6, 10, 10 ], [ 6, 6, 6, 6, 6, 10 ], [ 10, 10, 10, 10 ] ];
예시
const arr =[14, 6, 10]; const 합계 =40; const findSum =(arr, 합계) => { const res =[]; const 검색 =(인덱스, 부분 =[]) => { const s =part.reduce((a, b) => a + b, 0); if (s ===sum){ res.push(part) }; if (s>=합계 || 인덱스>=arr.length){ 반환; }; 검색(인덱스, 부분.concat(arr[인덱스])); 검색(인덱스 + 1, 부분); }; 검색(0); 반환 res;}console.log(findSum(arr, 합계));
출력
이것은 다음과 같은 출력을 생성합니다 -
[ [ 14, 14, 6, 6 ], [ 14, 6, 10, 10 ], [ 6, 6, 6, 6, 6, 10 ], [ 10, 10, 10, 10 ]]사전>