Mảng trong javascript

Mảng trong javascript là các biến đặc biệt, mỗi mảng chứa nhiều giá trị và được đánh chỉ số từ 0. Xử lý mảng là kiến thức quan trọng, vì rất thường hay dùng để giải quyết các bài toán thực tế như  sắp xếp, tìm kiếm, tính toán, duyệt phần tử… Trong javascript, mỗi mảng là đối tượng

Khai báo mảng trong javascript

Để khai báo một mảng, , bạn dùng cú pháp như sau:

<script>
var arr = []; //khai báo mảng rỗng
var arr = ["Nhân", "Lễ", "Nghĩa"];//mảng có 3 giá trị,chỉ số là 0, 1, 2
</script>

Các hàm xử lý mảng

Sau đây là một số hàm thường dùng để xử lý mảng:

Hàm toString() : Là hàm dùng để ghép các phần tử của mảng thành chuỗi ký tự, các phần tử cách nhau bởi dấu phẩy. Ví dụ dùng hàm toString như sau:

<script> 
    var arr = ["Nhân", "Lễ", "Nghĩa"] ;
    var str = arr.toString();
    console.log(str); // Nhân,Lễ,Nghĩa
 </script>

Hàm join() : Giúp ghép các phần tử của mảng thành chuỗi ký tự, các phần tử cách nhau bởi ký tự truyền vào. Ví dụ dùng hàm join như sau:

<script>
    var arr = ["Nhân", "Lễ", "Nghĩa"] ;
    var str = arr.join("-");
    console.log(str); // Nhân-Lễ-Nghĩa
 </script>

Hàm push() : Là hàm dùng để thêm phần tử vào cuối mảng. Ví dụ dùng hàm push như sau:

<script>
    var arr = ["Nhân", "Lễ", "Nghĩa"] ;
    var str = arr.push("Trí");
    console.log(arr); // ["Nhân", "Lễ", "Nghĩa", "Trí"]
</script>

Hàm pop() : Hàm push dùng để lấy ra và xóa phần tử cuối của mảng.

<script>
    var arr = ["Nhân", "Lễ", "Nghĩa"] ;
    var str = arr.pop();
    console.log(str, arr); // Nghĩa ["Nhân", "Lễ"]
</script>

Hàm unshift() : Hàm này để thêm 1 phần tử vào đầu mảng

<script>
    var arr = ["Nhân", "Lễ", "Nghĩa"] ;
    var str = arr.unshift("Tín");
    console.log(arr); // ["Tín", "Nhân", "Lễ", "Nghĩa"]
</script>

Hàm shift() : Lấy ra và xóa phần tử đầu mảng

<script>
    var arr = ["Nhân", "Lễ", "Nghĩa"] ;
    var str = arr.shift();
    console.log(str, arr); // Nhân ["Lễ", "Nghĩa"]
 </script>

Hàm slice() : Lấy ra các phần tử của mảng từ start đến trước end

<script>
    var diem = [7, 2, 9, 1, 0, 8, 1] ;
    var d = diem.slice(3, 6); //lấy các phần tử từ vị trí 3  đến thứ 5
    console.log(d); // [1, 0, 8]
 </script>

Hàm filter() : Lấy ra các phần tử thõa mãn điều kiện trong hàm calback

<script>
    var soluong = [7, 2, 9, 1, 12, 8, 3] ;
    var soluongnhieu = soluong.filter(function (value, index)
        if (value>=5)  return  true;
    });
    console.log(soluongnhieu); // [7, 9, 12, 8] 
 </script>

Hàm reverse() : Đảo ngược 1 mảng

<script>
    var nu = ["Em", "Không","Yêu","Anh"] ;
    var d = nu.reverse();
    console.log(d); // ["Anh", "Yêu", "Không", "Em"]
 </script>

Hàm splice(position, numDel, value1, value2, .. ) : Tại position xóa numDel phần tử, rồi tại đó thêm các phần tử vào value1, value2 vào mảng. Ví dụ:

<script>
    var soluong = [7,8,2,5,12,9,20,4] ;
    soluong.splice(3, 2, 30, 40, 50);//từ  vị trí 3 xóa 2 phần tử (5, 12) rồi tại đó chèn 30,40,50
    console.log(soluong); // [7, 8, 2, 30, 40, 50, 9, 20, 4]
 </script>

Hàm sort(): dùng để sắp xếp mảng theo thứ tự chữ cái alphabet. Do đó nếu sắp xếp mảng chứa dữ liệu số thì sẽ được kết quả không chính xác.

<script>
    var soluong = [7,8,2,5,12,9,20,4] ;
    soluong.sort();//sắp xếp theo alphabet
    console.log(soluong); // [12, 2, 20, 4, 5, 7, 8, 9]
    soluong.sort(function(a,b){ return a-b});//sắp theo số, tăng dần
    console.log(soluong); //  [2, 4, 5, 7, 8, 9, 12, 20]
    soluong.sort(function(a,b){ return b-a});//sắp theo số, giảm dần
    console.log(soluong); //  [20, 12, 9, 8, 7, 5, 4, 2]
 </script>

Hàm forEach(): duyệt qua từng phần tử của mảng, callback nhận tham số là giá trị và chỉ số của phần tử được duyệt.

<script>
    var soluong = [7,8,2,5,12,9,20,4] ;
    soluong.forEach(function(value, index){
        console.log(index + " : " + value );
    })
 </script>

Hàm map(): duyệt qua từng phần tử của mảng, hàm trả về 1 mảng mới (không ảnh hưởng đến mảng gốc) có cấu trúc tùy chỉnh. Ví dụ:

<script>
    var listsv  = [
        {ht:"Mai Thanh Toán", tuoi: 20},
        {ht:"Thi Hoài", tuoi: 22},
        {ht:"Phạm Luật", tuoi: 19},
        {ht:"Mai Anh Tới", tuoi: 21},
    ] ;
    var ht_arr = listsv.map(  (sv, index) => {return sv.ht} );
    console.log(ht_arr);// ["Mai Thanh Toán", "Thi Hoài", "Phạm Luật", "Mai Anh Tới"]
    var tuoi_arr = listsv.map(  (sv, index) => {return sv.tuoi} );
    console.log(tuoi_arr);// [20, 22, 19, 21]
 </script>

Trên đây là cách khai báo và mình họa các àm thường dùng để xử lý mảng trong javascript. Khi nào cần bạn quay lại coi nhé (1000 năm nữa cũng còn 🙂 ) . Bài liên quan là xử lý ngày tháng trong javascript và xử lý chuỗi trong javascript.