Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การสะสมองค์ประกอบอาร์เรย์เพื่อสร้างอาร์เรย์ใหม่ใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน 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]