สมมติว่าเรามีอาร์เรย์ของตัวเลข:
const arr = [3, 5, 7, 8, 3, 5, 7, 4, 2, 8, 4, 2, 1];
เราต้องเขียนฟังก์ชันที่คืนค่าอาร์เรย์ที่มีค่าเฉลี่ยขององค์ประกอบที่ตรงกันและตัวก่อนหน้า สำหรับองค์ประกอบแรก เนื่องจากไม่มีตัวก่อนหน้า จึงคืนค่าตัวมันเอง
มาเขียนโค้ดสำหรับฟังก์ชันนี้ เราจะใช้ฟังก์ชัน Array.prototype.map() เพื่อแก้ปัญหานี้:
ตัวอย่างโค้ด
const consecutiveAverage = arr => {
return arr.map((el, ind, array) => {
return ((el + (array[ind - 1] || 0)) / (1 + !!ind));
});
};
console.log(consecutiveAverage(arr));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
[ 3, 4, 6, 7.5, 5.5, 4, 6, 5.5, 3, 5, 6, 3, 1.5 ]