1. Giới thiệu về Array
Array (mảng) là một dạng đặc biệt của Object, dùng để lưu trữ danh
sách các phần tử. Mỗi phần tử có một chỉ số (index) bắt đầu từ 0.
// Array là một dạng của Object
const myArr = ["Phương Anh", "Phương Anh", "Phương Anh", "An", "Dũng"];
console.log(myArr.length); // độ dài mảng
console.log(myArr);
Trên thực tế, mảng có thể chứa mọi kiểu dữ liệu — số, chuỗi,
boolean, object, thậm chí mảng khác — nhưng trong dự án thực tế nên
thống nhất 1 kiểu dữ liệu để dễ quản lý.
2. Khai báo, truy cập & cập nhật phần tử
// Truy cập phần tử theo index
console.log(myArr[0]);
// Cập nhật giá trị tại index
myArr[0] = "Vũ Anh";
myArr[1] = "Tạ An";
myArr[2] = "Quốc Dũng";
console.log(myArr[0]);
// Thêm phần tử mới
myArr[myArr.length] = "Bảo Trâm";
console.log(myArr);
Khi thêm phần tử mới, chỉ cần gán vào vị trí
myArr[myArr.length] — JS sẽ tự thêm vào cuối mảng.
3. Duyệt mảng trong JavaScript
Có nhiều cách duyệt qua các phần tử của mảng, tuỳ trường hợp sử
dụng.
Cách 1. For thông thường
for (let i = 0; i < myArr.length; i++) {
console.log(myArr[i]);
}
Cách 2. For...in (lấy index)
for (let index in myArr) {
console.log(index);
}
Cách 3. For...of (lấy value)
for (let value of myArr) {
console.log(value);
}
for...in duyệt theo index — phù hợp khi cần vị trí.
for...of chỉ trả về giá trị — tiện khi chỉ cần đọc.
4. Ví dụ thực hành
Tính tổng số chẵn trong mảng
function sumArr(numbers) {
let sum = 0;
for (let number of numbers) {
if (number % 2 === 0) sum += number;
}
return sum;
}
console.log(sumArr([5, 2, 8, 7, -3, -6]));
Xoá phần tử trong mảng (tạo mảng mới)
let indexDelete = 2;
const newArr = [];
for (index in myArr) {
if (indexDelete === +index) continue;
newArr[newArr.length] = myArr[index];
}
console.log(newArr);
Tìm số lớn nhất và hoán đổi vị trí
function swap(numbers) {
console.log(numbers);
let max = numbers[0];
let indexOfMax = 0;
for (let number in numbers) {
if (max < numbers[number]) {
max = numbers[number];
indexOfMax = number;
}
}
numbers[indexOfMax] = numbers[0];
numbers[0] = max;
return numbers;
}
console.log(swap([5, 2, 8, 7, 100, -6]));
Khi cần đổi vị trí hai phần tử, luôn cần biết **index** của chúng
trong mảng.
5. Bài tập luyện tập
Xoá các phần tử trùng nhau trong mảng người dùng.
const myUser = ["User 1", "User 2", "User 3", "User 2", "User 4"];
let newMyUser = [];
for (let index in myUser) {
let isValid = true;
for (let user of newMyUser) {
if (user === myUser[index]) {
isValid = false;
break;
}
}
if (isValid) {
newMyUser[newMyUser.length] = myUser[index];
}
}
console.log(newMyUser);
Logic: Với mỗi phần tử, kiểm tra xem đã tồn tại trong mảng mới chưa.
Nếu chưa — thêm vào; nếu có — bỏ qua.