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

Tìm tổng số phần tử mong muốn trong một mảng trong JavaScript

Giả sử chúng ta có một mảng Số như thế này -

const arr = [1, 2, 1, 3, 2];

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng như vậy làm đối số đầu tiên. Đối số thứ hai sẽ là một số đại diện cho một tổng mong muốn, chúng ta hãy gọi nó là tổng, và đối số thứ ba và cuối cùng cũng sẽ là một số đại diện cho số lượng các số sẽ cộng lại thành tổng mong muốn từ mảng (không có sự lặp lại của các phần tử), hãy gọi số này là num.

Cuối cùng, hàm sẽ trả về số lượng của tất cả các nhóm như vậy có tổng và độ dài mong muốn.

Do đó, nếu giá trị đầu vào là -

const arr = [1, 2, 1, 3, 2];
const sum = 3;
const num = 2;

Sau đó, đầu ra phải là -

const output = 2;

vì hai nhóm là 1, 2 và 1, 2

Ví dụ

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

const arr = [1, 2, 1, 3, 2];
const sum = 3;
const num = 2;
const findGroups = (arr = [], sum = 1, num = 1) => {
   let count = 0
   for(let i = 0; i < arr.length; i++){
      let part = arr.slice(0 + i, num + i);
      const partSum = part.reduce((acc, val) => acc + val);
      if(partSum === sum){
         count++;
      };
   };
   return count
};
console.log(findGroups(arr, sum, num));

Đầu ra

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

2