Các bạn đã được tìm hiểu về cách sử dụng biến để lưu trữ số hoặc chuỗi.
Bây giờ chúng ta sẽ học về một thứ gọi là mảng, cho phép ta lưu trữ nhiều mục trong chỉ một biến.
Các bạn sẽ thấy rằng mảng cho phép ta làm đủ mọi thứ hữu ích.
Được rồi, ta cùng xem lại biến nhé.
Ta có var myFriend = “Sophia”.
Như vậy biến chỉ là một phương pháp lưu trữ giá trị như Sophia và gán nhãn cho nó để chương trình sau này có thể tham chiếu một cách dễ dàng.
Ta có thể coi đó như một ngăn kéo có nhãn myFriend ở bên ngoài và Sophia ở bên trong.
Bất cứ khi nào nhìn vào bên trong, ta sẽ thấy Sophia.
Đôi khi ta muốn lưu trữ nhiều giá trị trong một biến duy nhất.
Và ta sẽ không thể cứ thế mà làm được vì như vậy sẽ mắc phải lỗi cú pháp, và máy tính sẽ tá hỏa lên mất.
Chúng ta có một phương pháp riêng để thực hiện việc này, đó là sử dụng mảng.
Ta có thể nhập myFriends =, sau đó thêm một ngoặc vuông, và rồi ta có thể nhập tất cả giá trị vào trong đó.
Vậy là chúng ta có Sophia, John, và Leif.
Được rồi, đó là ba người bạn của tôi.
Có thể sắp xếp theo mức độ thân thiết đấy, nhưng đừng mách họ nhé.
OK. Hiện tại biến của chúng ta chứa ba giá trị, chứ không chỉ một.
Ta có thể tưởng tượng nó giống như một chiếc tủ ngăn kéo, rồi dán nhãn myFriends lên chiếc tủ đó.
Và ta chỉ việc mở ngăn kéo thích hợp để lấy đúng giá trị mà ta đang tìm kiếm.
Với một chiếc tủ ngăn kéo, nếu muốn biết có gì trong ngăn kéo đầu tiên, ta chỉ cần mở ra và nhìn vào bên trong.
Vậy ta sẽ làm thế nào với mảng?
Ta có thể nhập tên mảng, kế đến là ngoặc, và cuối cùng là số thứ tự của giá trị trong mảng.
Chọn 1 đi. Được khôn?
Ta sẽ thử sử dụng lệnh văn bản và hiển thị Sophia trên canvas.
Như vậy ta nhập myFriends[1], sau đó đưa vào đây, thêm một lệnh fill nho nhỏ nữa.
Ố, ra rồi, thấy John rồi. Tại sao ta lại thấy tên John?
Ta đã chọn 1 cho chỉ số phần tử, đúng không?
Số 1 ở ngay đây.
Nguyên nhân là do các mảng bắt đầu với số 0, chứ không phải 1, có thể lúc đầu các bạn sẽ thấy kỳ cục, nhưng dần dần sẽ quen thôi.
Vậy nếu nhập 0, ta sẽ thấy Sophia, phải không?
Nếu muốn hiển thị phần tử tiếp theo, ta sẽ nhập 1.
Và nếu muốn hiển thị phần tử cuối cùng, phần tử thứ ba, ta sẽ nhập 2.
Hẳn các bạn sẽ nghĩ, “OK, vậy mình muốn gọi ra cái nào?”
Ta cùng phân tích nhé.
Lấy vị trí hiện tại của phần tử trừ đi 1.
Như vậy phần tử đầu tiên là 0, phần tử thứ hai là 1, phần tử thứ 3 là 2, v.v và v.v.
Chuyện gì sẽ xảy ra nếu tôi quên mất cách tìm kiếm Leif?
Ta nhập myFriends[3], và không có gì hiển thị.
Đó là bởi không có phần tử nào ở vị trí đó cả, đúng không?
Khi nhập 3, máy tính sẽ tìm phần tử thứ tư, mà ta lại không có phần tử thứ tư.
Chẳng có gì hết.
Đó là chuyện xảy ra như cơm bữa khi ta sử dụng mảng. Hãy cẩn thận nhé.
Cũng tương tự như khi tôi thử tìm phần tử 100 vì tôi không có 100 bạn.
Tôi chỉ có 3 thôi...
Vậy là không có gì. Ta xóa đi nhé.
Bây giờ giả sử ta muốn đếm xem mình có bao nhiêu bạn bè vì tôi rất tự hào khi mình có tới 3 người bạn, và tôi muốn cho mọi người biết điều đó.
Tôi sẽ tuyên bố cho cả thế giới biết.
Ta có numFriends + friends. Quá tuyệt vời.
Vậy là tôi có 3 người bạn. Yay! Không nhiều lắm nhỉ.
OK, có thể Winston thấy thương hại tôi và nói rằng sẽ làm bạn với tôi.
Và rằng tôi có thể thêm tên anh ta vào mảng.
Tôi thì kiểu, “Tốt quá. Cảm ơn Winston.”
Thế là tôi thêm Winston. Ơ nhưng chương trình vẫn báo tôi chỉ có 3 người bạn.
Đúng rồi, vì tôi phải cập nhật biến này.
Điều đó có nghĩa là mỗi khi thêm gì đó vào mảng, ta phải cập nhật biến, khá là phiền phức đấy.
Đặc biệt nếu tất cả các bạn đều muốn làm bạn tôi sau khi xem bài học này, tôi sẽ phải cập nhật hàng nghìn lần, và mỗi lần như vậy lại là một lần cập nhật biến.
Nhưng vấn đề là, ta muốn kiểm tra độ dải của mảng thường xuyên đến mức có một phương pháp chuyên biệt cho việc đó.
Mảng sẽ tự theo dõi được độ dài của chính nó với thuộc tính length.
Để sử dụng thuộc tính này, ta nhập myFriends.length, và ta sẽ có được độ dài. Thấy không?
Bây giờ kết quả đang hiển thị 4, tôi có thể xóa biến này rồi. Nó không cần thiết nữa.
Thuộc tính này sẽ tự động cập nhật mỗi khi ta thêm phần tử.
Có thể ông OhNoes cũng muốn làm bạn với tôi, tôi thì kiểu, “Ờ, ông xấu tính quá, nhưng được thôi. Làm bạn cũng được.”
Ta có thể thêm, và thuộc tính sẽ cứ thế cập nhật.
Phương pháp này khá thú vị vì, các bạn biết đấy, việc theo dõi độ dài mảng sẽ đỡ mất công hơn rất nhiều.
Được rồi, như vậy mỗi khi muốn lưu trữ một danh sách giá trị như trên, ta sẽ sử dụng mảng.
Hãy theo dõi để biết được tất cả những điều thú vị mà ta có thể làm với mảng.