> > Array

Array prototype reduce() và reduceRight()

@
reduce là hàm giúp lặp qua tất cả các phần tử của một mảng và chạy một function đồng thời với hai giá trị của mảng (từ trái qua phải) cho đến khi nó giảm tới một giá trị đơn.

reduceRight cũng tương tự như “reduce”, nhưng nó lặp từ phải qua trái.


Code ví dụ reduce(f(a, b, c, d)):
a là giá trị của chỉ mục hiện tại (tính từ trái qua phải).
b là giá trị của chỉ mục liền kề phía sau a.
c là chỉ mục tương ứng với b.
d chính là mảng hiện tại.

Ví dụ này sẽ thay đổi giá trị của chỉ mục liền sau thành giá trị của nó nhân với giá trị của chỉ mục liền trước:
var a = [2, 3, 4, 5, 6];
a.reduce((a, b, c, d) => {
d[c] = a * b;
return b
});
//a == [2, 6, 12, 20, 30]

Code ví dụ reduceRight(f(a, b, c, d)):
a là giá trị của chỉ mục hiện tại (tính từ phải qua trái).
b là giá trị của chỉ mục liền kề phía trước a.
c là chỉ mục tương ứng với b.
d chính là mảng hiện tại.

Ví dụ này sẽ thay đổi giá trị của chỉ mục liền trước thành giá trị của nó nhân với giá trị của chỉ mục liền sau:
var a = [2, 3, 4, 5, 6];
a.reduceRight((a, b, c, d) => {
d[c] = a * b;
return b
});
//a == [6, 12, 20, 30, 6]
  this.alter   ·   2   ·  
😂Smileys List   ·   ×