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

Tìm các số có thể có trong mảng có thể tính tổng thành một giá trị đích JavaScript

Chúng tôi bắt buộc phải viết một hàm JavaScript nhận một mảng số làm đối số đầu tiên và một số duy nhất làm đối số thứ hai.

Hàm nên chọn các phần tử như vậy từ mảng mà khi được thêm vào sẽ cung cấp tổng được chỉ định bởi đối số thứ hai của mảng. Hàm phải trả về một mảng gồm tất cả các dãy số con như vậy mà khi được thêm vào sẽ cho tổng bắt buộc.

Lưu ý rằng thứ tự không quan trọng và nếu cần, chúng tôi có quyền sử dụng một số nhiều lần để tạo tổng.

Ví dụ -

Nếu mảng đầu vào và tổng là -

 const arr =[14, 6, 10]; const sum =40; 

Sau đó, kết quả đầu ra phải là -

 const output =[[14, 14, 6, 6], [14, 6, 10, 10], [6, 6, 6, 6, 6, 10], [10, 10, 10, 10] ]; 

Ví dụ

 const arr =[14, 6, 10]; const sum =40; const findSum =(arr, sum) => {const res =[]; const search =(index, part =[]) => {const s =part.reduce ((a, b) => a + b, 0); if (s ===sum) {res.push (part)}; if (s> =sum || index> =arr.length) {return; }; tìm kiếm (index, part.concat (arr [index])); tìm kiếm (chỉ mục + 1, một phần); }; tìm kiếm (0); return res;} console.log (findSum (arr, sum)); 

Đầu ra

Điều này sẽ tạo ra kết quả sau -

 [[14, 14, 6, 6], [14, 6, 10, 10], [6, 6, 6, 6, 6, 10], [10, 10, 10, 10]]