😊 Array 😊

Mảng trong javascript

Mảng là một đối tượng lưu trử nhiều giá trị theo chỉ mục index
js_masterJavascript
javascript-lap-trinh.jpg

Chào các bạn

Trong bài viết này mình sẽ nói về mảng Array.

Mảng Array là một đối tượng object dùng để lưu trử một danh sách các giá trị theo chỉ mục index.

Cú pháp

Để khai báo một mảng chúng ta có thể sử dụng dấu ngoặc vuông [] hoặc new Array()

1let arrA = []; // Khai báo một mảng
2
3let arrB = new Array(); // Khai báo một mảng

Chúng ta có thể khai báo và gán giá trị trực tiếp vào mảng

1let arrA = [1, 2, 3]; // Khai báo một mảng có giá trị 1, 2, 3
2
3let arrB = new Array(1, 2, 3); // Khai báo một mảng có giá trị 1, 2, 3

Hoặc một mảng hổn hợp

1let arr = [1, true, false, Symbol("id"), { name: "Hồ Quang Trí" }, [1, 2], "string"];
2
3// Và còn nhiều điều khác

Truy cập vào mảng

Để lấy một giá trị trong mảng array chúng ta truy cập theo chỉ mục index

1let arr = [1, 2, 3];
2
3console.log(arr[0]); // 1
4console.log(arr[1]); // 2
5console.log(arr[2]); // 3

Cũng như bất kỳ ngôn ngữ khác. Chỉ mục index trong mảng được đánh dấu bằng số 0

Để lấy bất kỳ giá trị nào trong mảng array

1let arr = [1, 2, 3];
2
3let a = arr[2]; // Lấy phần tử theo vị trí số 2
4
5console.log(a); // 3

Nếu giá trị lấy ra không tồn tại thì undefined được trả lại

1let arr = [1, 2, 3];
2
3let a = arr[5]; // Lấy phần tử theo vị trí số 5
4
5console.log(a); // undefined

Thay đổi giá trị trong mảng

Không giống như chuỗi string. Trong mảng chúng ta có thể thay đổi giá trị trực tiếp trong mảng bằng chỉ mục index

1let arr = [1, 2, 3];
2
3arr[1] = 100; // Thay thế giá trị số 2 trong mảng thành 100
4
5console.log(arr); // [1, 100, 3]

Ngay bây giờ giá trị số 2 trong mảng có tên biến arr đã thay đổi.

Độ dài mảng

Để lấy ra độ dài mảng. Các bạn dùng tài sản length

1let arr = [1, 2, 3];
2
3console.log(arr.length); // 3

Độ dài của mảng array chính là độ dài cuối cùng của chỉ mục index cộng thêm 1

Thêm xóa phần tử trong mảng

Có nhiều cách để thêm xóa phần tử trong mảng.

  • Thêm phần tử dựa trên chỉ mục

    1  let arr = [1, 2, 3];
    2
    3  console.log(arr.length); // 3
    4
    5  arr[3] = 100; // Thêm giá trị 100 vào vị trí số 3 trong mảng
    6
    7  console.log(arr); // [1, 2, 3, 100]
    8
    9  console.log(arr.length); // 4

Nếu chúng ta thêm giá trị mà vị trí index quá độ dài của mảng thì độ dài vẫn được tự động tăng lên và vị trí chỉ mục index mà không có giá trị sẽ trống.

1let arr = [1, 2, 3];
2
3console.log(arr.length); // 3
4
5arr[10] = 100; // Thêm giá trị 100 vào vị trí số 10 trong mảng
6
7console.log(arr); // [1, 2, 3, , , ...,  100]
8
9console.log(arr.length); // 11

Tình huống này chắc hiếm xảy ra trong thế giới thực. Nhưng chúng ta cũng nên biết.

Ngoài ra còn có các phương pháp khác về cách thêm và loại bỏ phần tử từ mảng.

Phương phápMô tả
pushPhương pháp thêm một hoặc nhiều phần tử vào mảng và trả về độ dài của mảng
shiftPhương pháp loại bỏ phần tử đầu tiên của mảng và trả về phần tử đả loại bỏ. Sữa đổi lại độ dài của mảng
unshiftPhương pháp thêm một hoặc nhiều phần tử vào đầu mảng và trả về độ dài của mảng
popPhương pháp loại bỏ phần tử cuối cùng của mảng và trả về phần tử vừa loại bỏ. Tự động thay đổi độ dài của mảng

Và còn mấy phương pháp nữa. Đến bài viết nào đó mình sẽ đi vào chi tiết từng phương pháp một.

Lặp mảng

Để lặp một mảng chúng ta sử dụng vòng lặp for hoặc while hay cái gì đó tùy vào bạn

1let arr = [1, 2, 3];
2
3for (let i = 0; i < arr.length; i++) {
4    console.log(arr[i]); // 1, 2, 3
5}

hoặc for of

1let arr = [1, 2, 3];
2
3for (let value of arr) {
4    console.log(value); // 1, 2, 3
5}

Mảng đa chiều

Ma trận các mảng

1let arr = [
2    [1, 2, 3],
3    [4, 5, 6],
4    [7, 8, 9]
5];

Để lặp nó các bạn có nhiều cách. Hai vòng lặp lồng nhau chẵng hạn

1let arr = [
2    [1, 2, 3],
3    [4, 5, 6],
4    [7, 8, 9]
5];
6
7for(let i = 0; i < arr.length; i++){
8    for(let j = 0; j < arr[i].length; j++){
9        console.log(arr[i][j]); // 1, 3, ..., 9
10    }
11}

Chuyển đổi trong mảng

Trong mảng không có ký hiệu Symbol.toPrimitive và phương pháp valueOf() mà chỉ có phương pháp toString()

1console.log([] + 1);  // 1
2console.log([3] + 1); // 31
3console.log([3, 2, 1] + 4); // 3, 2, 14
  • Mảng trống [] chuyển về rỗng
  • Nếu không thì chúng sẽ join lại

    1  let arr = [1, 3, 2];
    2
    3  arr.toString = function () {
    4      return this.join("-");
    5  }
    6
    7  console.log(arr + 3); // 1-3-23

Trong ví dụ trên mình đã ghi đè phương pháp toString mặc định của mảng arr thành chức năng mình định nghĩa. Nên kết quả đầu ra không còn là dấu phẩy , mà thành dấu -

So sánh trong mảng

Để so sánh mảng chúng ta có thể dùng toán tử == hoặc === hoặc Object.is(a, b)

1console.log([] == 0);           // true
2console.log([] === 0);          // false
3console.log(Object.is([], 0));  // false

Có rất rất là nhiều cách để so sánh. Tùy thuộc vào bài toán của các bạn

Để kiểm mảng

Để kiểm tra phần tử có phải mảng hay không các bạn dùng phương pháp Array.isArray(phần tử)

1let arrA = [1, 3, 4];
2let arrB = "Hello";
3
4console.log(Array.isArray(arrA)); // true
5console.log(Array.isArray(arrB)); // false

Cách nhanh nhất để thu gọn một mảng là

1let arr = [1, 3, 4];
2
3arr.length = 0; // Cho độ dài nó về 0

Tổng kết

Trong bài viết này mình nói về mảng array các điều căn bản về nó.

Các bạn xem thêm về nó tại đây Array

  • mảng
  • array
  • chỉ mục
  • index
  • object
  • đối tượng

OFFJS.COM - Blog học tập giải trí - 🐲

Chia sẻ nhiều kiến thức thú vị trong lập trình cũng như cuộc sống.

Giới thiệu


Trang web này mình sẽ nói về kiến thức lập trình và cuộc sống mà các bạn mới học hay đang dự định học. Có một bước đi đầu đời vững chắc.

Hồ Quang Trí.jpg

Đi kèm với đó là những lý thuyết và các dòng code minh họa. Để các bạn dễ hình dung.

Đơn nhiên cũng không dễ dàng ngày một ngày hai mà học hết được.

Học Tập Là Một Con Đường Dài Vô Tận

Nó sẽ nuốt các bạn vô số thời gian nhưng bù lại khi đã biết thì mọi thứ thật là tuyệt.

1console.log("Hồ Quang Trí");

Nếu có ai nói bạn học lập trình trong vòng 3 đến 6 tháng thì mình xin nói thật không bao giờ có chuyện đó nhé.

Chúc các bạn thành công.

Chân trang

phone-toan-phat.png

0353210168

address-toan-phat.png

Việt Nam