Khi làm việc với mảng trong JavaScript, sẽ có những lúc bạn cần hoán đổi vị trí của hai phần tử. Điều này thường xuất hiện trong các bài toán thuật toán như sắp xếp nổi bọt (bubble sort) hoặc khi bạn muốn hoán đổi hai giá trị để đáp ứng một điều kiện cụ thể nào đó.
Trong bài viết này, chúng ta sẽ cùng khám phá ba cách để hoán đổi hai phần tử trong mảng: sử dụng biến tạm, sử dụng cú pháp destructuring của ES6, và sử dụng phương thức splice()
của mảng.
Hoán Đổi Hai Phần Tử Bằng Biến Tạm (Temporary Variable)
Cách đơn giản và dễ hiểu nhất để hoán đổi hai phần tử trong mảng là sử dụng một biến tạm thời để lưu trữ giá trị của phần tử đầu tiên. Sau đó, bạn sẽ thay đổi giá trị của phần tử thứ nhất bằng giá trị của phần tử thứ hai và gán giá trị của biến tạm vào phần tử thứ hai.
Ví dụ:
let myArray = [12, -2, 55, 68, 80];
const temp = myArray[0]; // Lưu giá trị của phần tử đầu tiên
myArray[0] = myArray[1]; // Gán phần tử thứ nhất bằng phần tử thứ hai
myArray[1] = temp; // Gán phần tử thứ hai bằng giá trị của biến tạm
console.log(myArray); // Kết quả: [-2, 12, 55, 68, 80]
Viết Hàm Tái Sử Dụng:
Bạn cũng có thể tạo một hàm để dễ dàng tái sử dụng khi cần hoán đổi bất kỳ hai phần tử nào trong mảng.
const swapElements = (array, index1, index2) => {
let temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
};
let myArray = [12, -2, 55, 68, 80];
swapElements(myArray, 0, 1);
console.log(myArray); // Kết quả: [-2, 12, 55, 68, 80]
Hoán Đổi Hai Phần Tử Bằng Cú Pháp Destructuring
Cú pháp destructuring của ES6 giúp hoán đổi hai phần tử trong mảng một cách dễ dàng và ngắn gọn hơn. Đây là một phương pháp rất hiệu quả và chỉ yêu cầu một dòng mã.
let myArray = [12, -2, 55, 68, 80];
[myArray[0], myArray[1]] = [myArray[1], myArray[0]];
console.log(myArray); // Kết quả: [-2, 12, 55, 68, 80]
Viết Hàm Tái Sử Dụng:
Tương tự, chúng ta có thể tạo hàm để hoán đổi hai phần tử dựa vào cú pháp destructuring.
const swapElements = (array, index1, index2) => {
[array[index1], array[index2]] = [array[index2], array[index1]];
};
let myArray = [12, -2, 55, 68, 80];
swapElements(myArray, 0, 1);
console.log(myArray); // Kết quả: [-2, 12, 55, 68, 80]
Hoán Đổi Hai Phần Tử Bằng Phương Thức splice()
Phương thức splice()
trong JavaScript thường được sử dụng để xóa hoặc thay thế phần tử trong mảng. Bạn cũng có thể sử dụng phương thức này để hoán đổi vị trí của hai phần tử.
Cách Hoạt Động Của splice()
:
array.splice(index, số_lượng_phần_tử, phần_tử_thay_thế);
index
: vị trí của phần tử bắt đầu thay thế.số_lượng_phần_tử
: số lượng phần tử bạn muốn xóa.phần_tử_thay_thế
: phần tử mới để thay thế phần tử đã bị xóa.
Ví dụ Hoán Đổi:
let myArray = [12, -2, 55, 68, 80];
myArray[0] = myArray.splice(1, 1, myArray[0])[0];
console.log(myArray); // Kết quả: [-2, 12, 55, 68, 80]
Viết Hàm Tái Sử Dụng:
Bạn cũng có thể tạo một hàm để hoán đổi hai phần tử trong mảng bằng phương thức splice()
.
const swapElements = (array, index1, index2) => {
array[index1] = array.splice(index2, 1, array[index1])[0];
};
let myArray = [12, -2, 55, 68, 80];
swapElements(myArray, 0, 1);
console.log(myArray); // Kết quả: [-2, 12, 55, 68, 80]
Kết Luận
Trong bài viết này, bạn đã được học ba phương pháp để hoán đổi hai phần tử trong mảng bằng JavaScript:
- Sử dụng biến tạm (Temporary Variable).
- Sử dụng cú pháp destructuring của ES6.
- Sử dụng phương thức
splice()
của mảng.
Mỗi phương pháp đều có ưu điểm riêng, tuy nhiên cú pháp destructuring của ES6 là phương pháp hiệu quả và dễ hiểu nhất, giúp mã ngắn gọn hơn và dễ duy trì. Bạn có thể sử dụng phương pháp này trong hầu hết các trường hợp để đạt được hiệu suất tốt nhất.