Ví dụ về giảm trong javascript là gì?
Phương thức rút gọn JavaScript là một trong những nền tảng của lập trình chức năng. Hãy cùng khám phá cách thức hoạt động của nó, khi nào bạn nên sử dụng nó và một số điều thú vị mà nó có thể làm Show Giảm cơ bảnSử dụng nó khi. Bạn có một dãy số tiền và bạn muốn cộng tất cả chúng lại
Làm thế nào để sử dụng nó
Phiên bản ES5 của Phương thức rút gọn trong JavaScriptNếu bạn chưa bao giờ sử dụng cú pháp ES6 trước đây, đừng để ví dụ trên đe dọa bạn. Nó hoàn toàn giống như viết
Chúng tôi sử dụng 7 thay vì 8 và chúng tôi thay thế từ 9 bằng một "mũi tên béo" ( 0) sau các tham số và chúng tôi bỏ qua từ 'return'Tôi sẽ sử dụng cú pháp ES6 cho phần còn lại của các ví dụ, vì nó ngắn gọn hơn và ít sai sót hơn. Tìm giá trị trung bình bằng phương pháp rút gọn trong JavaScriptThay vì ghi lại tổng, bạn có thể chia tổng cho độ dài của mảng trước khi trả về giá trị cuối cùng Cách để làm điều này là tận dụng các đối số khác trong phương thức rút gọn. Đối số đầu tiên trong số đó là chỉ số. Giống như vòng lặp for, chỉ số đề cập đến số lần bộ giảm tốc đã lặp qua mảng. Đối số cuối cùng là chính mảng đó
Bản đồ và Lọc dưới dạng GiảmNếu bạn có thể sử dụng hàm rút gọn để đưa ra mức trung bình thì bạn có thể sử dụng nó theo bất kỳ cách nào bạn muốn Ví dụ: bạn có thể nhân đôi tổng số hoặc một nửa mỗi số trước khi cộng chúng lại với nhau hoặc sử dụng câu lệnh if bên trong bộ rút gọn để chỉ cộng các số lớn hơn 10. Quan điểm của tôi là Phương thức rút gọn trong JavaScript cung cấp cho bạn một CodePen nhỏ nơi bạn có thể viết bất kỳ logic nào bạn muốn. Nó sẽ lặp lại logic cho từng số tiền trong mảng và sau đó trả về một giá trị duy nhất Vấn đề là, không phải lúc nào bạn cũng phải trả về một giá trị. Bạn có thể giảm một mảng thành một mảng mới Chẳng hạn, hãy giảm một mảng số tiền thành một mảng khác trong đó mỗi số tiền được nhân đôi. Để làm điều này, chúng ta cần đặt giá trị ban đầu cho bộ tích lũy của mình thành một mảng trống Giá trị ban đầu là giá trị của tham số tổng khi bắt đầu giảm. Bạn đặt giá trị ban đầu bằng cách thêm dấu phẩy theo sau giá trị ban đầu của bạn bên trong dấu ngoặc đơn nhưng sau dấu ngoặc nhọn (được in đậm trong ví dụ bên dưới)
Trong các ví dụ trước, giá trị ban đầu bằng 0 nên tôi đã bỏ qua nó. Bằng cách bỏ qua giá trị ban đầu, tổng số sẽ mặc định là số tiền đầu tiên trong mảng Bằng cách đặt giá trị ban đầu thành một mảng trống, sau đó chúng ta có thể đẩy từng số tiền vào tổng. Nếu chúng ta muốn rút gọn một mảng giá trị thành một mảng khác mà mọi giá trị đều được nhân đôi, chúng ta cần đẩy số lượng * 2. Sau đó, chúng tôi trả về tổng số khi không còn số tiền nào để đẩy ________số 8Chúng tôi đã tạo một mảng mới trong đó mọi số tiền đều được nhân đôi. Chúng tôi cũng có thể lọc ra các số mà chúng tôi không muốn nhân đôi bằng cách thêm câu lệnh if bên trong bộ giảm tốc của chúng tôi
Các thao tác này là các phương thức bản đồ và bộ lọc được viết lại dưới dạng phương thức rút gọn Đối với những ví dụ này, sẽ hợp lý hơn khi sử dụng bản đồ hoặc bộ lọc vì chúng đơn giản hơn để sử dụng. Lợi ích của việc sử dụng rút gọn phát huy tác dụng khi bạn muốn ánh xạ và lọc cùng nhau và bạn có rất nhiều dữ liệu để xem qua Nếu bạn xâu chuỗi bản đồ và lọc lại với nhau, bạn đang thực hiện công việc hai lần. Bạn lọc từng giá trị và sau đó ánh xạ các giá trị còn lại. Với giảm, bạn có thể lọc và sau đó ánh xạ trong một lượt Sử dụng bản đồ và bộ lọc nhưng khi bạn bắt đầu xâu chuỗi nhiều phương thức lại với nhau, giờ đây bạn biết rằng thay vào đó, việc giảm dữ liệu sẽ nhanh hơn Tạo kiểm đếm bằng phương pháp rút gọn trong JavaScriptSử dụng nó khi. Bạn có một bộ sưu tập các món đồ và bạn muốn biết mỗi món đồ có bao nhiêu món trong bộ sưu tập 0Để kiểm đếm các mục trong một mảng, giá trị ban đầu của chúng ta phải là một đối tượng trống, không phải là một mảng trống như trong ví dụ trước Vì chúng ta sẽ trả về một đối tượng nên bây giờ chúng ta có thể lưu trữ các cặp khóa-giá trị trong tổng số 1Trong lần vượt qua đầu tiên của chúng tôi, chúng tôi muốn tên của khóa đầu tiên là giá trị hiện tại của chúng tôi và chúng tôi muốn cung cấp cho nó giá trị là 1 Điều này mang lại cho chúng ta một đối tượng với tất cả các loại trái cây làm khóa, mỗi khóa có giá trị là 1. Chúng tôi muốn số lượng của mỗi loại trái cây tăng lên nếu chúng lặp lại Để làm điều này, trong vòng lặp thứ hai, chúng tôi kiểm tra xem tổng số của chúng tôi có chứa khóa có kết quả hiện tại của bộ giảm tốc hay không. Nếu không thì chúng tôi tạo ra nó. Nếu đúng như vậy thì chúng tôi tăng số tiền lên một 2Tôi đã viết lại chính xác logic đó theo cách ngắn gọn hơn ở trên cùng Làm phẳng một mảng các mảng bằng phương thức Giảm trong JavaScriptChúng ta có thể sử dụng reduce để làm phẳng các số lượng lồng nhau thành một mảng Chúng tôi đặt giá trị ban đầu thành một mảng trống và sau đó nối giá trị hiện tại với tổng 3Thông thường, thông tin được lồng vào nhau theo những cách phức tạp hơn. Chẳng hạn, giả sử chúng ta chỉ muốn tất cả các màu trong biến dữ liệu bên dưới 0Chúng ta sẽ đi qua từng đối tượng và kéo ra các màu. Chúng tôi làm điều này bằng cách chỉ số lượng. c cho từng đối tượng trong mảng. Sau đó, chúng tôi sử dụng vòng lặp forEach để đẩy mọi giá trị trong mảng lồng vào tổng 1Nếu chúng tôi chỉ cần số duy nhất thì chúng tôi có thể kiểm tra xem tổng số đã tồn tại trước khi chúng tôi đẩy nó 2Đường ống với GiảmMột khía cạnh thú vị của phương thức rút gọn trong JavaScript là bạn có thể rút gọn các hàm cũng như số và chuỗi Giả sử chúng ta có một tập hợp các hàm toán học đơn giản. các chức năng này cho phép chúng tôi tăng, giảm, nhân đôi và giảm một nửa số tiền 3Vì bất kỳ lý do gì, chúng ta cần tăng, sau đó tăng gấp đôi, sau đó giảm một lượng Bạn có thể viết một hàm nhận đầu vào và trả về (đầu vào + 1) * 2 -1. Vấn đề là chúng ta biết rằng chúng ta sẽ cần tăng số tiền lên ba lần, sau đó nhân đôi, sau đó giảm đi và sau đó giảm một nửa vào một thời điểm nào đó trong tương lai. Chúng tôi không muốn phải viết lại chức năng của mình mỗi lần vì vậy chúng tôi sẽ sử dụng rút gọn để tạo một đường dẫn Một đường ống dẫn là một thuật ngữ được sử dụng cho một danh sách các chức năng chuyển đổi một số giá trị ban đầu thành giá trị cuối cùng. Đường ống của chúng tôi sẽ bao gồm ba chức năng của chúng tôi theo thứ tự mà chúng tôi muốn sử dụng chúng 4Thay vì giảm một mảng các giá trị, chúng tôi giảm qua hệ thống chức năng của mình. Điều này hoạt động vì chúng tôi đặt giá trị ban đầu là số lượng chúng tôi muốn chuyển đổi 5Bởi vì đường ống là một mảng, nó có thể dễ dàng sửa đổi. Nếu chúng ta muốn giảm thứ gì đó ba lần, sau đó nhân đôi nó, giảm nó và giảm một nửa thì chúng ta chỉ cần thay đổi quy trình 6Chức năng giảm vẫn giống hệt nhau Những sai lầm ngớ ngẩn cần tránhNếu bạn không chuyển vào một giá trị ban đầu, reduce sẽ coi mục đầu tiên trong mảng của bạn là giá trị ban đầu của bạn. Điều này hoạt động tốt trong một vài ví dụ đầu tiên vì chúng tôi đã thêm danh sách các số Nếu bạn đang cố kiểm đếm trái cây và bạn bỏ qua giá trị ban đầu thì mọi thứ sẽ trở nên kỳ lạ. Không nhập giá trị ban đầu là một lỗi dễ mắc phải và là một trong những điều đầu tiên bạn nên kiểm tra khi gỡ lỗi Một sai lầm phổ biến khác là quên trả lại tổng. Bạn phải trả lại thứ gì đó để chức năng rút gọn hoạt động. Luôn kiểm tra kỹ và đảm bảo rằng bạn đang thực sự trả lại giá trị mà bạn muốn Công cụ, Mẹo & Tài liệu tham khảo
Cảm ơn vì đã đọc. Nếu bạn muốn được thông báo khi tôi viết bài mới, vui lòng nhập email của bạn vào đây Và nếu bạn thích bài viết, vui lòng chia sẻ nó trên phương tiện truyền thông xã hội để những người khác có thể tìm thấy nó QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO Nếu bài viết này hữu ích, hãy tweet nó Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu Giảm () trong JavaScript là gì?Phương thức reduce() thực thi hàm gọi lại "reducer" do người dùng cung cấp trên mỗi phần tử của mảng, theo thứ tự, chuyển vào giá trị trả về từ phép tính ở phần trước . Kết quả cuối cùng của việc chạy bộ giảm tốc trên tất cả các phần tử của mảng là một giá trị duy nhất. . The final result of running the reducer across all elements of the array is a single value.
Giảm được sử dụng để làm gì?Phương thức reduce() thực thi hàm rút gọn cho phần tử mảng . Phương thức reduce() trả về một giá trị duy nhất. kết quả tích lũy của hàm. Phương thức reduce() không thực thi hàm đối với các phần tử mảng trống. Phương thức reduce() không thay đổi mảng ban đầu.
Tại sao nó được gọi là giảm JavaScript?Bộ tích lũy là giá trị mà chúng ta kết thúc và bộ giảm tốc là hành động mà chúng ta sẽ thực hiện để đạt được một giá trị. Bạn phải nhớ rằng bộ rút gọn sẽ chỉ trả về một giá trị và chỉ một giá trị thôi do đó có tên là reduce.
Giảm một mảng là gì?Giảm mảng trong JavaScript là một phương thức được xác định trước được sử dụng để giảm mảng thành một giá trị duy nhất bằng cách chuyển hàm gọi lại trên từng phần tử của mảng. It accepts a function executed on all the items of the specified array in the left-to-right sequence. The returned single value is stored in the accumulator. |