Numbers 배열을 첫 번째 인수로, 목표 합계 Number를 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.
이 함수는 대상 합계를 만들기 위해 요소의 합이 포함된 원래 배열에서 모든 하위 배열의 배열을 반환해야 합니다. 단일 숫자를 두 번 사용하여 합계를 얻을 수 있습니다.
예를 들어 -
입력 배열과 숫자가 -
인 경우const arr = [1, 2, 4]; const sum = 4;
출력은 -
여야 합니다.const output = [ [1, 1, 1, 1], [1, 1, 2], [2, 2], [4] ]
예시
const arr = [1, 2, 4]; const sum = 4; const getCombinations = (arr = [], sum) => { const result = []; const pushElement = (i, t) => { const s = t.reduce(function (a, b) { return a + b; }, 0); if (sum === s) { result.push(t); return; }; if (s > sum || i === arr.length) { return; }; pushElement(i, t.concat([arr[i]])); pushElement(i + 1, t); } pushElement(0, []); return result; }; console.log(getCombinations(arr, sum));
출력
콘솔의 출력은 -
[ [ 1, 1, 1, 1 ], [ 1, 1, 2 ], [ 2, 2 ], [ 4 ] ]