Tìm số lớn nhất và nhỏ nhất trong mảng JavaScript

Ứng dụng thường cần tìm giá trị lớn nhất hoặc nhỏ nhất trong danh sách. Trên thực tế, công cụ điểm chuẩn được sử dụng để tìm ra cách hiệu quả để hợp nhất Mảng trong JavaScript cần thiết để có được thời gian chạy cao nhất và thấp nhất. Một công cụ điểm chuẩn tương tự được sử dụng trong bài viết này để xác định cách lấy giá trị lớn nhất và nhỏ nhất trong Mảng JavaScript một cách hiệu quả theo cách đơn giản. Để thực hiện mục tiêu này, trước tiên phải xác định được loại phần tử Mảng

Một Mảng được tạo từ các phần tử bao gồm các giá trị nguyên thủy, đối tượng hoặc cả hai. Vì lý do đó, bài viết này sẽ đề cập đến chủ đề hiện tại cho từng loại yếu tố. Trước tiên, bạn sẽ thấy cách tìm giá trị lớn nhất và nhỏ nhất trong Mảng các giá trị nguyên thủy một cách hiệu quả. Sau đó, bạn sẽ thấy cách lấy giá trị cao nhất và thấp nhất trong Mảng đối tượng dựa trên giá trị thuộc tính. Cuối cùng, bài viết này sẽ đưa ra một phân tích về kết quả khiến tôi ngạc nhiên. Nếu bạn thiếu thời gian, đây là bài học

Bài học rút ra (hoặc TL; DR)

Bạn cần xác định xem tốc độ hoặc quy mô có quan trọng hơn đối với kịch bản của mình không. Cách tiếp cận an toàn nhất là sử dụng câu lệnh for. Nếu tốc độ là yếu tố quan trọng, bạn nên cân nhắc sử dụng JavaScript’s Math. [max/min] chức năng cho Mảng nhỏ hơn. Tuy nhiên, các chức năng này sẽ không hoạt động đối với Mảng lớn hơn. Vì lý do đó, bạn nên thử nghiệm phương pháp của mình với số lượng phần tử lớn nhất mà bạn mong đợi để tránh những hậu quả không mong muốn

Bài học rút ra ở trên được xác định bằng cách triển khai 32 chức năng cho bài viết này. Repo nguồn cho bài viết này có thể được tìm thấy ở đây. Repo này bao gồm các mẫu được hiển thị trong các phần sau và một công cụ đo điểm chuẩn. Nếu bạn thấy tất cả những điều này hữu ích, vui lòng theo dõi tôi ngay bây giờ để biết nội dung tương tự. Hãy bắt đầu nào

Tìm giá trị lớn nhất và nhỏ nhất trong một mảng các giá trị nguyên thủy

JavaScript cho phép bạn tìm các giá trị lớn nhất và nhỏ nhất trong Mảng theo nhiều cách khác nhau. Đối với bài viết này, tôi đã triển khai 16 hàm trong nỗ lực tìm ra cách “tốt nhất” để lấy các giá trị này từ một Mảng các giá trị nguyên thủy. Trong ngữ cảnh của bài viết này, “tốt nhất” có nghĩa là a) triển khai nhanh chóng và dễ đọc b) mạnh mẽ và c) hoạt động hiệu quả ở mức trung bình. Với những mục tiêu này, 8 mẫu sau đã được tạo để tìm giá trị nhỏ nhất trong Mảng

mẫu 1

mẫu 2

mẫu 3

mẫu 4

mẫu 5

mẫu 6

mẫu 7

mẫu 8

Mẫu 1–8 hiển thị các cách khác nhau để nhận giá trị thấp nhất trong Mảng giá trị nguyên thủy. Như đã nêu ở đầu bài viết này, sự đơn giản là một mục tiêu. Vì lý do đó, các mẫu sử dụng các tính năng JavaScript có sẵn. Các thuật toán khoa học máy tính phổ biến như chia để trị và kết hợp các cặp không được đưa vào phân tích này. Các thuật toán này cũng không được sử dụng để lấy giá trị cao nhất và thấp nhất trong Mảng đối tượng dựa trên giá trị thuộc tính

Nhận giá trị cao nhất và thấp nhất trong một mảng đối tượng dựa trên một giá trị thuộc tính

JavaScript cho phép bạn lấy giá trị cao nhất và thấp nhất từ ​​Mảng theo nhiều cách. Sử dụng các mục tiêu tương tự đã được thông báo trước đó, 8 mẫu sau đây đã được tạo để tìm giá trị thấp nhất trong Mảng đối tượng

mẫu 9

mẫu 10

mẫu 11

mẫu 12

mẫu 13

mẫu 14

mẫu 15

mẫu 16

Các mẫu 9–16 hiển thị các cách khác nhau để nhận giá trị nhỏ nhất trong Mảng đối tượng. Những hình ảnh này gần giống với hình ảnh 1–8 với một số khác biệt nhỏ. Mọi thứ trở nên thú vị khi bạn phân tích hiệu suất

Phân tích hiệu suất tìm giá trị lớn nhất và nhỏ nhất trong một mảng

Theo kinh nghiệm của tôi, không có gì thu hút sự chú ý của kỹ sư vào một khối mã như một số điểm chuẩn. Điểm chuẩn và mã được xem xét ngay lập tức nếu có bất kỳ điều gì không phù hợp hoặc có thể được cải thiện. Đó có thể là một điều tốt. Tôi sẵn sàng trở nên dân sự nếu bạn là như vậy 😉. Để bắt đầu, đây là kết quả tôi quan sát được khi chạy công cụ điểm chuẩn từ kho lưu trữ nguồn của bài viết này trên MacBook Air 13 inch 2020 chạy macOS Phiên bản 12. 0. 1 trong Google Chrome 96. 0. 4664. 55

hình ảnh 17 — kết quả benchmark

Hình ảnh 17 hiển thị tóm tắt kết quả khi chạy điểm chuẩn cho một số tình huống. Tóm tắt này là kết quả của bốn bảng khác được chia sẻ ở đây. Mỗi kịch bản được chạy 100 lần với 1, 10, 100, 1.000, 10.000, 100.000 và 1.000.000 phần tử. Do kết quả của những lần chạy thử đó và dữ liệu xuất hiện, tôi đã thực hiện các quan sát sau

  • Toán học. Các chức năng [max/min] có tốc độ trung bình nhanh nhất
  • Toán học. [max/min] không hoạt động trên Mảng lớn hơn
  • Mảng. chức năng bản đồ cũng không hoạt động trên Mảng lớn hơn
  • Câu lệnh for…in là cách tiếp cận có hiệu suất trung bình chậm nhất
  • Các câu lệnh for và while lỗi thời dường như là sự kết hợp tốt nhất giữa tốc độ và sự an toàn

Để đo lường chính xác hơn hiệu quả của từng phương pháp, nên sử dụng ký hiệu Big-O. Nếu bạn muốn tìm hiểu về ký hiệu Big-O, hãy xem khóa học về ký hiệu Big-O được liên kết sau đây trên Educative. Mili giây được sử dụng trong hình 17 để đơn giản hóa cuộc thảo luận

Những quan sát này cho phép tôi đi đến bài học rút ra được chia sẻ ở đầu bài viết này. Tôi khuyến khích bạn tự chạy điểm chuẩn và tự mình thử nghiệm. Cá nhân tôi hy vọng bạn sẽ ghi nhớ những nhận xét này để bạn có thể tạo ra các ứng dụng và dịch vụ tốt hơn. Toàn bộ lý do tôi viết bài này là vì tôi đã gặp lỗi RangeError trong một ứng dụng. RangeError có thông báo. Đã vượt quá kích thước ngăn xếp cuộc gọi tối đa. Mã tôi được thừa hưởng đang sử dụng Math. tối thiểu và Toán. max đó là nguồn. Mặc dù việc triển khai có vẻ chính xác, nhưng đây là trường hợp ma quỷ ở trong các chi tiết

Trong bài viết này, bạn đã biết cách lấy giá trị phần tử Array lớn nhất và nhỏ nhất trong JavaScript. Nếu bạn tìm thấy một cách tiếp cận hiệu quả hơn, tôi hy vọng bạn sẽ chia sẻ nó trong phần bình luận bên dưới. Nếu bạn thấy bài viết này hữu ích, hãy vỗ tay 👏 hoặc vỗ tay bên dưới. Điều này cho phép tôi và những người khác biết rằng bạn thấy bài viết này hữu ích. Nếu bạn muốn tìm hiểu nội dung tương tự, tôi khuyến khích bạn theo dõi tôi ngay bây giờ. Cảm ơn vì đã đọc

Thêm nội dung bằng tiếng Anh. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Nhận quyền truy cập độc quyền để viết các cơ hội và lời khuyên trong cộng đồng của chúng tôi Discord

Làm cách nào để tìm số lớn nhất và nhỏ nhất trong mảng JavaScript?

Để lấy số cao nhất hoặc thấp nhất từ ​​một mảng trong JavaScript, bạn có thể sử dụng hàm Math. max() hoặc Toán học. Sau đó, các phương thức min() trải rộng các phần tử từ mảng sang các phương thức này bằng cách sử dụng toán tử trải rộng (. ) . Cả hai phương pháp Math.

Làm cách nào để tìm số lớn nhất và nhỏ nhất trong js?

var min = Toán học. phút. áp dụng(null, lớn nhất), max = Math. tối đa.

Làm cách nào để tìm số nhỏ nhất trong mảng JavaScript?

//hàm tìm giá trị nhỏ nhất trong mảng function arrayMin(array){ var min = array[0]; . chiều dài;

Làm cách nào để lấy số lớn nhất trong một mảng trong JavaScript?

Có hai cách để bạn có thể tìm số lớn nhất từ ​​một mảng JavaScript. .
Sử dụng phương thức mảng forEach()
Sử dụng phương thức mảng reduce()