1. loop qua một array
Chúng ta thử xem thời gian tiêu tốn cho việc loop qua 10k item trong array
for
: ~10 microsecondswhile
: ~11 microsecondsforEach
: ~77 microsecondsfor-of
: ~110 microsecondsreduce
: ~113 microseconds
Nếu muốn tính tổng của một array thì sử dụng reduce
là rõ ràng, tuy nhiên cái giá phải trả quá lớn. Vòng lặp mới nhất từ ES6 for-of
cũng về áp chót. Như vậy cứ xài vòng for
kinh điển, tuy cũ mà nhanh gấp 10 lần cái for-of
2. Duplicate một array
Khi thế giới đang tồn thờ tư tưởng immutable function ( không sửa cái input khi cho ra output ), việc duplicate một input array là chuyện thường ngày ở huyện.
Chúng ta hãy xem kết quả tất cả các cách chúng ta có thể dùng để duplicate một array
[].concat(arr)
: ~366 microsecondsarr.slice()
: ~367 microsecondsarr.map(x => x)
: ~469 microseconds[...arr]
: ~512 microsecondsArray.from(arr)
: ~1,436 microseconds
Như vậy 2 phương thức cũ như dưa mắm concat
và slice
vẫn dành chiến thắng, kiểu spread operation mới ES6 vẫn top cuối.
3. Loop qua một object
for(let key in obj)
: ~240 microsecondsObject.keys(obj)
sau đó for each: ~294 microsecondsObject.entries(obj)
sau đó for of: ~535 microseconds
Ở hai cách làm bên dưới, do phải tạo thêm một mảng chứa key, rồi mới loop qua mảng này object nên nó chậm.
Initializing...