Những điều bạn chưa biết về mảng trong JS
1.Kiểu mảng ???? Liệu có phải là kiểu mảng
let arr = new Array();
console.log(typeof(arr))
=> Output : object
=> How to tìm được nó là kiểu mảng trong js ?
----------------------------------------------------------------------------------
2. Length của mảng và tại sao có quá nhiều cách duyệt mảng vậy.
Lúc đầu học js mình có 1 câu hỏi lớn , sao tụi lập trình viên nước ngoài rãnh ngồi làm ra cả chục cách duyệt mảng , thì gần đây mình mới hiểu được tại sao!! Chính là tại sự rắc rối của thằng length :
let arr = [];
arr[20] = '20';
arr['name']='jsLand'
for(let i = 0 ,n=arr.length;i<n;i++){
console.log(arr[i]);
}
=> Output ở đây bất ngờ ở 2 chỗ : (các bạn tự chạy thử nhé)
----------------------------------------------------------------------------------
n = arr.length = 21
. Khai báo 2 giá trị trong mảng mà length nó = 21 ??? Sự thật ở đây khi bạn khai báo a[20] thì nó sẽ tự tạo giá trị undefined cho các giá trị index từ 0-19 nên length = 21.
Đáng nói hơn ở đây là arr['name']
: cách khai báo này sẽ không tính vô length của mảng... Rắc rối của vòng for
trên xảy ra ở đây . Khi duyệt mảng bằng cách trên nó sẽ in ra hàng loại giá trị undefined
mà ta không khai báo , và sẽ không truy xuất được giá trị mảng mà index không phải là số .
Cách giải quyết : sử dụng arr.forEach
, for in
, for of
, những cách duyệt mảng hiện đại hơn của JS
----------------------------------------------------------------------------------
Tóm tắt:
- +) Không nên sử dụng vòng for chạy theo length của mảng
- +) Đừng tin những gì js nói , hãy thấy những gì js làm
Ủng hộ Chung Nguyễn Blog
Chung Nguyễn Blog sử dụng FlashVPS - Dịch vụ quản trị máy chủ chuyên nghiệp để quản lý VPS
#FlashVPS là dịch vụ cloud panel trên nền tảng web hỗ trợ khách hàng:
- * Quản lý máy chủ số lượng nhiều
- * Không có kinh nghiệm quản lý máy chủ
- * Thích sử dụng giao diện web đơn giản, trực quan hơn terminal
- * Quá nhàm chán với việc ghi nhớ và lặp lại việc gõ các câu lệnh
- * Muốn tự động hóa mọi thao tác
- * Muốn tiết kiệm thời gian quản trị máy chủ
- * Muốn tiết kiệm tiền bạc, nhân lực quản trị máy chủ 👉 https://flashvps.dev
Các bài viết trên website thường xuyên được đăng tải và cập nhật trên trang Facebook Chung Nguyễn Blog hãy tặng cho Chung một LIKE nhé! Mãi yêu các bạn!
813 👍
Bình luận