Bản đồ có nhanh hơn vòng lặp JavaScript không
Như chúng ta có thể thấy trong hình, RxSwift chậm hơn nhiều so với các chức năng tích hợp và cả vòng lặp for-in. Giải pháp chức năng tích hợp là 5. Nhanh hơn 14 lần so với RxSwift và giải pháp vòng lặp for-in là 12. Nhanh hơn 21 lần so với RxSwift Show Vui lòng không sử dụng RxSwift khi bạn cần làm việc với lượng dữ liệu khổng lồ Phần kết luậnTheo các trường hợp thử nghiệm, không có gì sai khi sử dụng các hàm bậc cao khi chúng ta KHÔNG cần xâu chuỗi chúng. Hiệu suất tốt hơn rất nhiều (1. nhanh hơn 63 lần) khi chúng tôi sử dụng chức năng bản đồ tích hợp hoặc tốt hơn/tệ hơn một chút khi chúng tôi sử dụng bộ lọc/giảm tích hợp Nếu chúng ta muốn xâu chuỗi các hàm bậc cao, chúng ta nên cân nhắc việc không sử dụng chúng và triển khai chúng như một giải pháp vòng lặp for-in. Hiệu suất là cách tốt hơn, 2. Nhanh hơn 37 lần (trong các ví dụ của bài viết này) so với các chức năng tích hợp sẵn Không cần phải luôn sử dụng các yếu tố, cấu trúc hoặc chức năng hiện đại của ngôn ngữ hiện đại chỉ vì cú pháp có vẻ đẹp hơn hoặc mọi người đều sử dụng nó. Sự phức tạp về thời gian và không gian quan trọng hơn nhiều so với cú pháp hiện đại và cuối cùng, cú pháp ưa thích không giúp chúng ta trở thành những nhà phát triển giỏi hơn, mặc dù chúng ta có thể nghĩ rằng nó có. Một số chức năng được yêu thích nhất trong JavaScript có thể là Trong bài đăng này, tôi sẽ nói về sự khác biệt chính giữa mỗi loại và cho bạn thấy một số ví dụ về cách sử dụng của chúng Trước khi đọc Về cơ bản, việc lặp qua một đối tượng trong JavaScript phụ thuộc vào việc đối tượng đó có phải là một
const arr = [1];1, vì vậy chúng tôi không cần phải suy nghĩ về iterable . Nếu bạn muốn nghiên cứu thêm, tôi khuyên bạn nên xem đối tượng iterable trong JavaScript là gìconst arr = [1];4 và const arr = [1];5 là gì?
Vòng lặp const arr = [1];8 đã đồng hành cùng chúng ta từ những ngày đầu của kỷ nguyên JavaScript. Cần 3 biểu thức. giá trị ban đầu, điều kiện và biểu thức cuối cùng Đây là một cách cổ điển để lặp một mảng. Kể từ ECMAScript 5, các chức năng mới đã xuất hiện giúp chúng ta hạnh phúc hơn bản đồ
const arr = [1];8 thực hiện, ngoại trừ việc map tạo một mảng mới với kết quả là gọi một hàm được cung cấp trên mọi phần tử trong mảng đang gọiPhải mất hai tham số. một hàm gọi lại sẽ được gọi sau khi [1,2,3].map(d => d + 1); // [2, 3, 4]; 4 mà hàm gọi lại sẽ sử dụng khi được gọiChức năng gọi lại có thể được sử dụng như dưới đây arr.map((str) => { console.log(Number(str)); }) Kết quả của const arr = [1]; Bạn cũng có thể chuyển đối tượng cho [1,2,3].map(d => d + 1); // [2, 3, 4]; 4Đối tượng [1,2,3].map(d => d + 1); // [2, 3, 4]; 8 đã trở thành [1,2,3].map(d => d + 1); // [2, 3, 4]; 4 cho map . Nhưng chức năng gọi lại mũi tên không thể nhận được [1,2,3].map(d => d + 1); // [2, 3, 4]; 8 như [1,2,3].map(d => d + 1); // [2, 3, 4]; 4 của nóĐiều này là do các hàm mũi tên hoạt động khác với các hàm thông thường. Truy cập bài viết này để xem có gì khác nhau giữa chức năng mũi tên và chức năng thông thường cho mỗi
[1,2,3].map(d => d + 1); // [2, 3, 4]; 4 mà chúng sử dụng làm thisSau đó, những gì khác nhau?
[1,2,3].map(d => d + 1); // [2, 3, 4]; ~~Sửa~~
[{a: 1, b: 2}, {a: 10, b: 20}].forEach((obj) => obj.a += 1); Ví dụ trên là của Kenny Martin Rguez. Cảm ơn bạn. 👏 Khi nào nên sử dụng map() và forEach()?Vì sự khác biệt chính giữa chúng là có giá trị trả về hay không, nên bạn sẽ muốn sử dụng Đây là một ví dụ đơn giản Ví dụ, trong React, Mặt khác, subjects.filter(subject => mySubjectId.includes(subject.id)).length; 7subjects.filter(subject => mySubjectId.includes(subject.id)).length; Tóm lại, tôi khuyên bạn nên sử dụng So sánh tốc độ Một số bài viết đề cập đến Mã trông rất giống nhưng kết quả thì ngược lại. Một số bài kiểm tra cho biết Có thể bạn đang tự nhủ rằng Nhưng có một điều chắc chắn — cả hai đều chậm hơn so với tính năng tích hợp sẵn của JavaScript, vòng lặp const arr = [1];8 Phần kết luận
Nhưng một lưu ý quan trọng thực sự cần ghi nhớ là hiểu những gì từng làm và khi nào sử dụng từng
Cái nào nhanh hơn vòng lặp for trong JavaScript?vòng lặp forEach
. Thời gian thực hiện của forEach bị ảnh hưởng đáng kể bởi những gì xảy ra bên trong mỗi lần lặp. Nó nhanh và được thiết kế cho mã chức năng.
Tại sao chúng tôi sử dụng bản đồ thay vì vòng lặp trong JavaScript?bản đồ thực hiện chính xác những gì vòng lặp for thực hiện, ngoại trừ bản đồ đó tạo một mảng mới với kết quả gọi một hàm được cung cấp trên mọi phần tử trong mảng gọi
Bản đồ có chậm JavaScript không?map() thực hiện một số logic bổ sung làm chậm đáng kể so với vòng lặp for thô .
Chúng ta có thể sử dụng bản đồ thay vì vòng lặp trong JavaScript không?Sử dụng vòng lặp map() thay vì vòng lặp for()
. Nếu bạn chỉ có kiến thức về vòng lặp for() trong JavaScript, bài viết này sẽ yêu cầu bạn hiểu cú pháp Biểu thức hàm mũi tên (a. k. a. chức năng “mũi tên mập”). map() function works. If you only have knowledge of for() loops in JavaScript, this article will require you to understand the Arrow Function Expression syntax (a.k.a. “fat arrow” functions). |