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