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

Tích lũy các phần tử mảng để tạo thành mảng mới trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng số, arr, làm đối số thứ nhất và một số, num, (num <=độ dài của mảng) làm đối số thứ hai

Hàm của chúng ta nên cộng từng mảng con liền kề có độ dài num của mảng arr để tạo thành các phần tử tương ứng của mảng mới và cuối cùng trả về mảng mới đó

Ví dụ:nếu đầu vào của hàm là -

const arr = [1, 2, 3, 4, 5, 6];
const num = 2;

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

const output = [3, 5, 7, 9, 11];

Giải thích đầu ra

Vì 1 + 2 =3, 2 + 3 =5, v.v. ...

Ví dụ

Sau đây là mã−

const arr = [1, 2, 3, 4, 5, 6];
const num = 2;
const accumulateArray = (arr = [], num = 1) => {
   const res = [];
   let sum = 0, right = 0, left = 0;
   for(; right < num; right++){
      sum += arr[right];
   };
   res.push(sum);
   while(right < arr.length){
      sum -= arr[left];
      sum += arr[right];
      right++;
      left++;
      res.push(sum);
   };
   return res;
};
console.log(accumulateArray(arr, num));

Đầu ra

Sau đây là đầu ra của bảng điều khiển−

[3, 5, 7, 9, 11]