algolia search

Tìm thấy x bài viết trong xms.

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

#Share

Đánh giá bài viết

Thích thì like
Những điều bạn chưa biết về mảng trong JS
5/5 1 votes

Bình luận

Hiển thị bình luận Facebook