Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm tất cả các kết hợp có thể có từ một mảng trong JavaScript


Chúng tôi bắt buộc phải viết một hàm JavaScript lấy mảng Numbers làm đối số đầu tiên và tổng mục tiêu làm đối số thứ hai. Hàm phải tạo một mảng gồm tất cả các phần tử như vậy từ mảng (lặp lại hoặc không lặp lại) cộng vào targetum.

Ví dụ - Nếu mảng đầu vào là -

const arr = [2, 3, 6, 7], sum = 7;

Do đó, đầu ra cho đầu vào ở trên sẽ giống như thế này -

const output = [
   [2, 2, 3],
   [7]
];

Ví dụ

Mã cho điều này sẽ là -

const arr = [2, 3, 6, 7], sum = 7;
const combineElements = (arr, sum) => {
   const output = [];
   const findCombination = (remain, path, start) => {
      if (remain < 0) {
         return;
      }
      if (remain === 0) {
         output.push([...path]);
         return;
      }
      for (let i = start; i < arr.length; i++) {
         findCombination(remain − arr[i], [...path, arr[i]], i);
      }
   }
   findCombination(sum, [], 0);
   return output;
};
console.log(combineElements(arr, sum));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[ [ 2, 2, 3 ], [ 7 ] ]