Chào ạ,
const array1 = [1, 2, 3, 4];
const callback = (previousValue, currentValue) => {
console.log({ "pre": previousValue, "current": currentValue })
};
log ra:
{ pre: 1, current: 2 }
{ pre: undefined, current: 3 }
{ pre: undefined, current: 4 }
previousValue
bị undefined kể từ lần init đầu tiên nhưng tại sao không phải là :
{ pre: 1, current: 2 }
{ pre: 2, current: 3 }
{ pre: 3, current: 4 }
Em không hiểu tại sao khi sử dụng reduce
bắt buộc phải có return
và giá trị return của vòng lặp trước đó lại trở thành đối số thứ nhất previousValue
của các lần lặp sau cho đến hết mảng (giá trị 3,6 của log bên dưới)
const array1 = [1, 2, 3, 4];
const callback = (previousValue, currentValue) => {
console.log({ "pre": previousValue, "current": currentValue })
return previousValue + currentValue;
};
const result = array1.reduce(callback);
console.log(result); // ra 10
log ra là:
{ pre: 1, current: 2 }
{ pre: 3, current: 3 }
{ pre: 6, current: 4 }
Ngoài tác dụng tính tổng mảng (hoặc phép toán tương tự) thì reducer còn dùng trong trường hợp nào nữa không?
Làm sao để mở API của hàm reduce này ra xem bên trong được code như thế nào?
Em cảm ơn