Phương thức
5 kết hợp từng phần tử của một mảng, sử dụng hàm rút gọn được chỉ định và trả về một giá trị duy nhấtconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
array.reduce[[accumulator, currentValue, index, array] => {...}, initialValue]
5 có hai đối sốconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
- Đầu tiên, là hàm rút gọn thực hiện thao tác rút gọn và nhận bốn đối số
7 là giá trị trả về từ hàmconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
8 là phần tử được lặp đi lặp lạiconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
9 [tùy chọn] là chỉ số củaconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
8const arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
1 [tùy chọn] là mảng màAdding with initial value: abcde
5 đã được gọiconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
- Đối số thứ hai [tùy chọn] là một
1 để chuyển đến hàmconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
Giá trị của
7 tích lũy với mỗi lần lặp qua mảng, dẫn đến một giá trị duy nhấtconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
const arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
Điều này sẽ mang lại đầu ra sau
Adding with initial value: abcde
Ví dụ sau đây sử dụng
5 để trừ các số trong một mảngconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
4 từ giá trị ban đầu củaconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
5 được cung cấpconst arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
Trong bài đăng này, bạn sẽ tìm hiểu về thao tác rút gọn và cách sử dụng phương thức
5 để thực hiện thao tác rút gọn trên mảngAdding with initial value: abcde
1. Giảm hoạt động
Trước khi đi sâu vào cách sử dụng phương pháp
6, hãy phân biệt vấn đề mà nó cố gắng giải quyết. giảm một mảng thành một giá trịAdding with initial value: abcde
Giảm một mảng có nghĩa là thực hiện một thao tác tích lũy cụ thể trên các mục của nó để tính giá trị kết quả
Một ví dụ điển hình về thao tác rút gọn là tính tổng của một mảng, trong đó thao tác tích lũy là phép cộng các mục. Đối với một mảng
7 rút gọn thành tổng kết quả làAdding with initial value: abcde
0javascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
Một ví dụ khác về rút gọn là xác định phần tử lớn nhất của mảng. Đối với một mảng
1, việc giảm xuống mục tối đa dẫn đếnjavascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
2javascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
Bây giờ bạn có thể dễ dàng thấy phương thức
6 làm gì — thực hiện thao tác rút gọnAdding with initial value: abcde
2. mảng. phương pháp giảm []
6 là một phương thức trên mảng chấp nhận 2 đối sốAdding with initial value: abcde
javascript
const value = array.reduce[callback[, initialValue]];
5 là một đối số bắt buộc là một hàm thực hiện thao tác rút gọn và đối số tùy chọn thứ hai là giá trị ban đầujavascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
JavaScript gọi hàm
5 theo từng mục của mảng có 4 đối số. giá trị bộ tích lũy, mục mảng hiện tại, chỉ mục mục mảng hiện tại và chính mảng đó. Hàmjavascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
5 phải trả về giá trị bộ tích lũy được cập nhậtjavascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
3const arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
Ví dụ: hãy quay lại mã từ phần giới thiệu
4const arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
Hãy thử bản trình diễn
8 tính tổng tất cả các phần tử trong mảngjavascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
Cuộc gọi lại
9 được gọi cho mọi mục trong mảng với tổng tích lũy và số lần lặp. Gọi lạijavascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
9 thêm mục đã lặp vào tổng đã tích lũy và trả về tổng đã cập nhật đójavascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
Đó là cách một mảng giảm thành một tổng
Ngoài ra, hãy lưu ý đối số thứ hai của
8 — tổng các phần tử mảng được khởi tạo vớijavascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
2javascript
const value = array.reduce[callback[, initialValue]];
thử thách phụ. bạn sẽ sử dụng phương thức
6 như thế nào để tìm giá trị lớn nhất của mảng?Adding with initial value: abcde
3. Bỏ qua đối số giá trị ban đầu
Bạn cũng có thể bỏ qua đối số thứ hai của
6. Trong trường hợp như vậy, phương thức rút gọn khởi tạo giá trị bộ tích lũy với mục đầu tiên của mảng và quá trình lặp bắt đầu từ mục thứ haiAdding with initial value: abcde
Ví dụ: hãy tính tổng các phần tử mảng mà không chỉ ra đối số thứ hai của
5javascript
const value = array.reduce[callback[, initialValue]];
1const arrayOne = ['a', 'b', 'c', 'd', 'e'];
arrayOne.reduce[[acc, curr] => acc + curr]
const arrayTwo = ['b', 'c', 'd', 'e'];
'Adding with initial value:',
arrayTwo.reduce[[acc, curr] => acc + curr, 'a']
const arrayThree = [{ x: 1 }, { x: 2 }, { x: 4 }];
arrayThree.reduce[[acc, curr] => acc + curr.x, 0]
Hãy thử bản trình diễn
Đối số giá trị ban đầu bị bỏ qua, do đó bộ tích lũy được khởi tạo với giá trị của mục đầu tiên [số
6]. Lặp lại bắt đầu từ mục thứ haijavascript
const value = array.reduce[callback[, initialValue]];
4. Phần kết luận
6 là một phương thức hữu ích giúp giảm một mảng thành một giá trịAdding with initial value: abcde
5 chấp nhận 2 đối số. hàmAdding with initial value: abcde
5 cập nhật giá trị bộ tích lũy và giá trị ban đầu của bộ tích lũy.javascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
6 sau đó gọiAdding with initial value: abcde
5 cho từng mục của mảng, cập nhật bộ tích lũy ở mỗi bướcjavascript
const numbers = [2, 4, 6];
const sum = numbers.reduce[function[sum, number] {
const updatedSum = sum + number;
return updatedSum;
}, 0];
sum; // 12
Bạn cũng có thể bỏ qua đối số giá trị ban đầu, trong trường hợp đó, giá trị bộ tích lũy được khởi tạo với mục đầu tiên của mảng và quá trình lặp lại bắt đầu từ mục thứ hai
Bạn có muốn đọc thêm về phương pháp mảng?
Thích bài viết?
đề xuất cải tiếnBài đăng chất lượng vào hộp thư đến của bạn
Tôi thường xuyên xuất bản bài viết có chứa
- Các khái niệm JavaScript quan trọng được giải thích bằng các từ đơn giản
- Tổng quan về các tính năng JavaScript mới
- Cách sử dụng TypeScript và cách gõ
- Thiết kế phần mềm và thực hành mã hóa tốt
Đăng ký nhận bản tin của tôi để nhận chúng ngay trong hộp thư đến của bạn
Đặt muaTham gia cùng 6719 người đăng ký khác
Giới thiệu về Dmitri Pavlutin
Nhà văn và huấn luyện viên công nghệ. Thói quen hàng ngày của tôi bao gồm [nhưng không giới hạn] uống cà phê, viết mã, viết, huấn luyện, vượt qua sự nhàm chán 😉