Giả sử chúng ta có một mảng số:
const arr = [3, 5, 7, 8, 3, 5, 7, 4, 2, 8, 4, 2, 1];
Chúng ta cần viết một hàm trả về mảng chứa trung bình cộng của từng phần tử với phần tử trước nó. Với phần tử đầu tiên (không có phần tử trước), trả về chính phần tử đó.
Chúng ta sẽ dùng Array.prototype.map() để giải quyết bài toán này.
Ví dụ
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));Kết quả
Đoạn code sẽ in ra console:
[ 3, 4, 6, 7.5, 5.5, 4, 6, 5.5, 3, 5, 6, 3, 1.5 ]