Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 배열에 대한 모든 합계 조합

<시간/>

Numbers 배열을 첫 번째 인수로, 숫자(예:n)를 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다. 숫자 n은 항상 배열의 길이보다 작거나 같습니다.

우리의 함수는 원래 배열에서 길이가 n인 모든 가능한 하위 배열의 모든 요소를 ​​합한 배열을 반환해야 합니다.

예를 들어, 입력이 −

인 경우
const arr = [2, 6, 4];
const n = 2;

그러면 출력은 다음과 같아야 합니다. -

const output = [8, 10, 6];

예시

이에 대한 코드는 -

const arr = [2, 6, 4];
const n = 2;
const buildCombinations = (arr, num) => {
   const res = [];
   let temp, i, j, max = 1 << arr.length;
   for(i = 0; i < max; i++){
      temp = [];
      for(j = 0; j < arr.length; j++){
         if (i & 1 << j){
            temp.push(arr[j]);
         };
      };
      if(temp.length === num){
         res.push(temp.reduce(function (a, b) { return a + b; }));
      };
   };
   return res;
}
console.log(buildCombinations(arr, n));

출력

콘솔의 출력 -

[ 8, 6, 10 ]