Cái nào nhanh hơn vòng lặp for trong JavaScript?

Tất cả chúng ta đều biết rằng vòng lặp for nhanh hơn so với hàm for each hoặc javascript vì bên dưới các hàm javascript có thể đang sử dụng vòng lặp for hoặc thứ gì đó khác mà tôi không chắc. Tôi đã thực hiện một thử nghiệm đơn giản với một mảng đối tượng và thực hiện một số thao tác thông qua vòng lặp for/cho mỗi hàm javascript và quan sát thời gian cần thiết để thực thi

Các kết quả này là từ các ví dụ nhỏ và có thể thay đổi tùy theo thao tác được thực hiện, lựa chọn thực thi env. và sự lựa chọn của VM

1. Giảm so với vòng lặp so với foreach_______0_______

Ghi chú. Dưới đây là danh sách các kết quả và mã có thể được tìm thấy ở đây

Tất cả các kết quả cho thấy rõ ràng rằng vòng lặp for thành thạo hơn for each so với map/reduce/filter/find

Bản đồ/Giảm/Lọc/Tìm bị chậm vì nhiều lý do, một số trong số đó là

  1. Họ có một cuộc gọi lại để thực hiện để hoạt động như một chi phí
  2. Có rất nhiều trường hợp góc mà các hàm javascript xem xét như getters, mảng thưa thớt và kiểm tra các đối số được truyền có phải là một mảng hay không, điều này làm tăng thêm chi phí

tôi tìm thấy một lib. triển khai lại một số hàm JavaScript gốc dựng sẵn phổ biến

Nhưng việc lựa chọn cách sử dụng không chỉ phụ thuộc vào hiệu suất mà còn có nhiều yếu tố khác cần được xem xét, một số trong số đó là

  1. Khả năng đọc mã và khả năng bảo trì
  2. dễ mã
  3. Tốc độ mã hóa
  4. Thực hiện so với tối ưu hóa
  5. Lựa chọn cá nhân

Cá nhân tôi thích bản đồ, rút ​​gọn, lọc, tìm và tôi đã sử dụng chúng trong một thời gian dài. Họ đã giúp tôi viết mã rõ ràng, chính xác, nhanh chóng và phù hợp với quá trình suy nghĩ của tôi. Tôi sử dụng vòng lặp for khi không còn lựa chọn nào khác

Đối với tối ưu hóa, ánh xạ/giảm/bộ lọc/tìm thay thế phải là tùy chọn cuối cùng hoặc không phải là tùy chọn tùy thuộc vào mức độ tối ưu hóa được yêu cầu

Ghi chú. Nếu bạn đang sử dụng các vòng lặp, hãy luôn sử dụng chúng một cách tự nhiên vì các trình biên dịch hiện đủ thông minh để tối ưu hóa chính xác các vòng lặp đặc ngữ

Cập nhật. Tại đây bạn có thể tìm thấy kết quả cho tập dữ liệu lớn và tính toán nặng

Tôi viết bài trên overflowjs. com và phần 2 của bài viết này so sánh bộ nhớ cache ấm của ramada inline caching và một số nội dung của GC. Vì vậy, đừng quên theo dõi trên overflowjs. com

Vui lòng cân nhắc nhập email của bạn tại đây nếu bạn muốn được thêm vào danh sách email của tôi và theo dõi tôi trên phương tiện để đọc thêm bài viết về javascript và trên github để xem mã điên rồ của tôi. Nếu có gì chưa rõ hoặc muốn chỉ ra điều gì, hãy comment xuống bên dưới

Trong bài viết này, chúng ta sẽ xem cách nhanh nhất để lặp qua một mảng trong JavaScript. JavaScript có sẵn rất nhiều vòng lặp để thực hiện các phép lặp. Các vòng lặp sau đây cùng với cú pháp của chúng được hỗ trợ bởi JavaScript

cho vòng lặp. Một vòng lặp for bao gồm một khởi tạo biến, một điều kiện để đánh giá biến và một biểu thức để xác định kết thúc của vòng lặp. Nó thực hiện một số lần lặp cố định, do đó nó phải được sử dụng trong các tình huống mà số lần lặp lại của vòng lặp đã được biết trước
Trong trường hợp hằng số, chúng ta có loại cú pháp sau

// for loop that performs 10k iterations
for (let i = 0; i < 10000; i++) {
    // Statements 
}

Trong trường hợp mảng

// Loop that runs up till the length
// of the array 
for (i = 0; i < array.length; i++) {
    // Statements 
}

trong khi lặp lại. Một vòng lặp while thực hiện khởi tạo bên ngoài, trước khi bắt đầu vòng lặp, sau đó một điều kiện được xác thực và sau đó biểu thức được đánh giá. Việc thực hiện vòng lặp while tiếp tục cho đến khi thỏa mãn điều kiện

Vòng lặp while trong trường hợp mảng, hãy làm theo cú pháp

// Initialization 
let x = 0;


// Condition checking
while (x <= arr.length+1) {
    // Increment
    x += 1;
}

vòng lặp forEach(). Mỗi phần tử của mảng phải chịu một chức năng thực hiện một số hoạt động hoặc nhiệm vụ. Hàm được chỉ định làm tham số của phương thức forEach trong JavaScript. Nó thực hiện các tác vụ hiệu quả cao khi yêu cầu mã chức năng. Về cơ bản, đây là một chức năng gọi lại phụ thuộc nhiều vào hoạt động được thực hiện bên trong

// Evaluation is performed element
// wise of the array 
let arr = []                      
arr.forEach((ele) => { 
    // Statements
})                              

cho…của vòng lặp. Đây là phiên bản mới của vòng lặp for. Vòng lặp này yêu cầu gán tên tạm thời cho từng phần tử của mảng. Nó chạy cực nhanh trong trường hợp tập dữ liệu nhỏ. Nó dễ đọc hơn nhiều so với vòng lặp for truyền thống. Nó thực hiện một phép lặp trên các đối tượng lặp có sẵn của JavaScript như Chuỗi, Bản đồ, Tập hợp và Mảng

Cái nào nhanh hơn vòng lặp for?

Hiểu danh sách nhanh hơn vòng lặp for để tạo danh sách.

Vòng lặp nhanh nhất trong JavaScript là gì?

Vòng lặp nhanh nhất là vòng lặp for, cả khi có và không có độ dài bộ nhớ đệm đều mang lại hiệu suất thực sự giống nhau. .
Vòng lặp while với số lần giảm khoảng 1. Chậm hơn 5 lần so với vòng lặp for
Một vòng lặp sử dụng chức năng gọi lại (như forEach tiêu chuẩn), chậm hơn khoảng 10 lần so với vòng lặp for

Cái nào nhanh hơn forEach hay for loop JavaScript?

forEach Loop . Nó chậm hơn so với vòng lặp truyền thống về hiệu suất. Câu lệnh break có thể được sử dụng để thoát khỏi vòng lặp. Không thể sử dụng câu lệnh break vì chức năng gọi lại.

Vòng lặp nào nhanh hơn vòng lặp for?

vòng lặp while là vòng lặp nhanh nhất.