ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข arr เป็นอาร์กิวเมนต์แรก และตัวเลข num (ซึ่ง num <= ความยาวของอาร์เรย์) เป็นอาร์กิวเมนต์ที่สอง
ฟังก์ชันควรบวกแต่ละอาร์เรย์ย่อยต่อเนื่องที่มีความยาว num ของอาร์เรย์ arr เพื่อสร้างองค์ประกอบที่สอดคล้องกันของอาร์เรย์ใหม่ และสุดท้ายคืนค่าอาร์เรย์ใหม่นั้น
ตัวอย่างเช่น หากอินพุตคือ
const arr = [1, 2, 3, 4, 5, 6];
const num = 2;
ผลลัพธ์ควรเป็น
const output = [3, 5, 7, 9, 11];
คำอธิบายผลลัพธ์
เพราะ 1 + 2 = 3, 2 + 3 = 5, และต่อไป...
ตัวอย่างโค้ด
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));
ผลลัพธ์
[3, 5, 7, 9, 11]