Học Javascript part 6

Hôm nay mình sẽ đề cập tới việc sử dụng array trong js. Array (Mảng) là 1 tập thứ tự các giá trị. Mỗi giá trị gọi là 1 thành phần con của 1 một mảng và có số thứ tự tương ứng. Mảng trong javascript là thuộc dạng untyped : Một mảng có thể chứa nhiều kiểu giá trị. Các thành con của mảng có thể là object hoặc là số. Mảng trong javascript có tính dynamic: có thể add thêm hoặc bớt phần tử của mảng.

Tạo mảng

Cách đơn giản nhất là tạo mảng với kí tự hoặc số, các phần tử của mảng cách nhau bởi dấu ,

var empty = []; // Mảng rỗng
var primes = [2, 3, 5, 7, 11]; // Mảng 5 phần tử
var misc = [ 1.1, true, "a", ]; // mảng 3 phần tử khác kiểu

Phần tử của mảng cũng có thể là 1 expression:

var base = 1024;
var table = [base, base+1, base+2, base+3];

Bạn cũng có thể bỏ qua giá trị của phần tử khi khởi tạo mảng, khi đó giá trị mặc định của phần tử tại vị trí đó là >undefined

var count = [1,,3]; // Mảng 3 phần tử và phần tử thứ 2 mang giá trị undefined 
var undefs = [,,]; //  Mảng 2 phần tử giá trị undefined

Bạn có thể tạo mảng qua constructor Array()

  • Tạo mảng rỗng:
    var a = new Array()
  • Tạo mảng có độ dài 10 phần tử:
  var a = new Array(10)
  • Tạo mảng có sẵn các phần tử:
  var a = new Array(1,2,3,5,87)

Đọc và Viết gía trị của mảng

var a = ["world"]; // khởi tạo mảng var value = a[0]; // Đọc phần tử đầu tiên a[1] = 3.14; // Thêm vào mảng 1 phần tử ở vị trí số 2 i = 2; a[i] = 3; // Thêm vào mảng phần tử ở vị trí số 2

Mảng thưa thớt (sparse array)

Thông thường các giá trị của mảng có index liên tiếp nhau, tuy nhiên mảng có thể có index ko liên tiếp nhau khi đó độ dài của mảng ko bằng số phần tử của mảng

a = new Array(5); //mảng 5 phần tử và có length là 5
a = [] ; // mảng có độ dài  = 0
a[1000] =0 ; //mảng có 1 phần tử nhưng có length là 1001

Độ dài của mảng ( Array Length)

Độ dài của mảng tuỳ thuộc vào loại mảng

[].length // => 0: mảng ko có phần tử
['a','b','c'].length // => 3: mảng có 3 phần tử
a[1000] =0 ; //mảng có 1 phần tử nhưng có length là 1001

Thêm hoặc xoá phần tử của mảng

Bạn có thể dùng hàm push() hoặc dùng chỉ số index để thêm phần tử cho mảng:

a = []; // mảng rỗng
a.push("zero") // thêm 1 phần tử cho mảng. a = ["zero"]
a.push("one", "two") // thêm 2 phần tử cho mảng

Bạn dùng hàm delete để xó phần tử của mảng:

a = [1,2,3]; 
delete a[1]; // a giờ ko có phần tử nào ở index = 1
1 in a  // => false 
a.length // => length = 3

Duyệt phần tử của mảng

var keys = Object.keys(o);
var values = []
for(var i = 0; i < keys.length; i++) {
            var key = keys[i];
            values[i] = o[key];
}            

Cám ơn bạn đã theo dõi !!! 😃