Đôi khi bạn cần thêm một hoặc nhiều giá trị mới vào cuối một mảng. Trong tình huống này các push()
phương pháp là những gì bạn cần.
Các push()
phương thức sẽ thêm một hoặc nhiều đối số vào cuối một mảng trong JavaScript:
let arr = [0, 1, 2, 3];
arr.push(4);
console.log(arr); // [0, 1, 2, 3, 4]
Phương thức này chấp nhận số lượng đối số không giới hạn và bạn có thể thêm bao nhiêu phần tử tùy thích vào cuối mảng.
let arr = [0, 1, 2, 3];
arr.push(4, 5, 6, 7, 8, 9);
console.log(arr); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Các push()
phương thức cũng trả về độ dài mới của mảng.
let arr = [0, 1, 2, 3];
let newLength = arr.push(4);
console.log(newLength); // 5
Ví dụ về push
trong JavaScript và các lỗi thường gặp
Cách gán lại mảng
Gán lại mảng với đầu ra từ push
là một lỗi phổ biến.
let arr = [0, 1, 2, 3];
arr = arr.push(4);
console.log(arr); // 5
Để tránh lỗi này bạn cần nhớ rằng push
thay đổi mảng và trả về độ dài mới. Nếu bạn gán lại biến với giá trị trả về từ push()
bạn đang ghi đè giá trị mảng.
Cách thêm nội dung của một mảng vào cuối một mảng khác
Nếu bạn muốn thêm nội dung của một mảng vào cuối một mảng khác, push
là một phương pháp có thể sử dụng. push
sẽ thêm dưới dạng các phần tử mới bất cứ thứ gì bạn sử dụng làm đối số. Điều này cũng tương tự đối với một mảng khác, vì vậy mảng phải được giải nén bằng toán tử trải rộng:
let arr1 = [0, 1, 2, 3];
let arr2 = [4, 5, 6, 7];
arr1.push(...arr2);
console.log(arr1); // [0, 1, 2, 3, 4, 5, 6, 7]
Cách sử dụng push
trên một đối tượng giống như mảng
Có những đối tượng tương tự như mảng (như arguments
đối tượng – đối tượng cho phép truy cập vào tất cả các đối số của hàm), nhưng đối tượng đó không có tất cả các phương thức mà mảng có.
Để có thể sử dụng push
hoặc các phương thức mảng khác trên các phương thức này, trước tiên chúng phải được chuyển đổi thành mảng.
function myFunc() {
let args = [...arguments];
args.push(4);
returns args;
}
console.log(myFunc(0, 1, 2, 3)); // [0, 1, 2, 3, 4]
Nếu trước tiên bạn không thay đổi kiểu mảng arguments
đối tượng thành một mảng, mã sẽ dừng lại với một TypeError: arguments.push is not a function
.
Phần kết luận
Nếu bạn làm việc với mảng, đừng bỏ lỡ push
. Nó thêm một hoặc nhiều phần tử vào cuối mảng và trả về độ dài mới của mảng.