JavaScript xóa mục khỏi mảng theo chỉ mục

Trong bài viết này, chúng ta sẽ khám phá một số cách khác nhau để xóa một mục khỏi mảng trong JavaScript. Tôi cũng sẽ chỉ cho bạn các thao tác có thể thay đổi và không thể thay đổi để bạn biết mã của mình sẽ ảnh hưởng như thế nào đến cấu trúc dữ liệu và tham chiếu của bạn

Việc xóa các mục khỏi mảng chỉ đơn giản là tìm chỉ mục của mục đó hoặc ít nhất là theo cách truyền thống. Ngày nay - chúng tôi có các tùy chọn khác, chẳng hạn như tìm các mục bên trong một mảng theo giá trị của chúng. Điều đó có nghĩa là hiện có nhiều cách tiếp cận để loại bỏ các mục

Mục lục

Phần ngắn tiếp theo này sẽ đi sâu vào các chỉ mục mảng và cách chúng hình thành, đây là phần đi sâu hơn - nhưng nếu bạn đang theo đuổi các giải pháp thì hãy cuộn ngay qua

Hiểu chỉ mục mảng

Trong JavaScript, mảng là một loại đối tượng đặc biệt

Đối tượng mảng này có một số thuộc tính khác nhau, một số thuộc tính kế thừa tồn tại trên nguyên mẫu và một số thuộc tính mà đối tượng mảng hiển thị cho chúng ta khi chúng ta “thêm” mọi thứ vào một mảng

JavaScript xóa mục khỏi mảng theo chỉ mục
JavaScript xóa mục khỏi mảng theo chỉ mục

Sách điện tử miễn phí

Chỉ thị, đơn giản phải không? . Nhìn bề ngoài chúng có vẻ đơn giản, nhưng ngay cả các nhà phát triển Angular lành nghề cũng chưa nắm hết mọi khái niệm trong eBook này

Hàm chúng ta đã truyền cho phương thức filter() được gọi với từng đối tượng trong mảng. Nếu nó trả về một giá trị trung thực, đối tượng sẽ được thêm vào mảng mới

Trên mỗi lần lặp lại, chúng tôi kiểm tra xem thuộc tính id của đối tượng hiện tại không có giá trị cụ thể hay không

Mảng mới chứa tất cả các đối tượng của mảng ban đầu thỏa mãn điều kiện

Xóa một đối tượng khỏi một mảng theo giá trị của nó bằng Array. tìm Index()

Để xóa một đối tượng khỏi một mảng theo giá trị của nó

  1. Sử dụng phương thức Array.findIndex() để lấy chỉ số của đối tượng trong mảng
  2. Sử dụng phương thức Array.splice() để xóa đối tượng tại chỉ mục đó

Hàm chúng tôi đã chuyển đến Mảng. Phương thức findIndex() được gọi với từng phần tử (đối tượng) trong mảng cho đến khi nó trả về một giá trị trung thực hoặc lặp lại trên toàn bộ mảng

Trong ví dụ này, chúng ta có chỉ mục của đối tượng đầu tiên trong mảng có thuộc tính id với giá trị là 3

Bước tiếp theo là sử dụng Array. splice() để xóa đối tượng tại chỉ mục đó khỏi mảng

Các đối số chúng tôi chuyển đến phương thức Array.splice()

  1. chỉ mục bắt đầu - chỉ mục để bắt đầu thay đổi mảng
  2. số lượng xóa - có bao nhiêu phần tử sẽ bị xóa khỏi mảng

Chỉ mục bắt đầu của chúng tôi là chỉ mục của đối tượng cần xóa và chúng tôi chỉ muốn xóa một phần tử mảng duy nhất

Phương thức findIndex trả về filter()0 nếu điều kiện không bao giờ được đáp ứng

Nếu chúng ta chuyển filter()0 làm chỉ mục bắt đầu cho phương thức Array.splice(), nó sẽ xóa phần tử cuối cùng khỏi mảng, đây sẽ là một lỗi trong chương trình của chúng ta

Nếu đây là một tình huống có thể xảy ra trong mã của bạn, hãy sử dụng phương pháp Array.filter() để thay thế

Phương thức filter()4 thay đổi nội dung của mảng ban đầu, điều này có thể gây nhầm lẫn và khó theo dõi. Hầu hết thời gian tốt hơn là tạo một mảng mới, chỉ chứa các phần tử mà chúng ta cần

Phương pháp Array.filter() khác với phương pháp filter()6 và filter()7 vì một số lý do

  1. Phương thức filter()6 trả về chỉ số của phần tử đầu tiên đáp ứng điều kiện, trong khi phương thức filter() có thể lọc ra nhiều phần tử có cùng giá trị

  2. Phương thức filter()7 thay đổi nội dung của mảng ban đầu, trong khi phương thức filter() tạo một mảng mới

Ngoài ra, bạn có thể sử dụng phương pháp filter()2

Xóa một đối tượng khỏi một mảng theo giá trị của nó bằng Array. lát cắt()

Để xóa một đối tượng khỏi một mảng theo giá trị của nó

  1. Sử dụng phương thức Array.findIndex() để lấy chỉ số của đối tượng trong mảng
  2. Sử dụng phương thức filter()2 để tạo một mảng mới không bao gồm đối tượng tại chỉ mục đó

Chúng ta đã sử dụng phương thức Array.findIndex() để lấy chỉ số của đối tượng trong mảng

Phương thức trả về chỉ mục của đối tượng có thuộc tính id với giá trị là 3

Sau đó, chúng tôi đã sử dụng phương thức filter()2 để tạo một mảng mới không chứa đối tượng tại chỉ mục đó

Cú pháp lây lan (. ) được sử dụng để giải nén các giá trị của các lát mảng thành một mảng mới

Chúng tôi đã chuyển các đối số sau cho Array. phương thức slice()

  • chỉ mục bắt đầu - chỉ mục (dựa trên số không) để bắt đầu trích xuất
  • chỉ mục kết thúc - trích xuất các giá trị tối đa, nhưng không bao gồm chỉ mục này

Chúng tôi đã thêm filter()9 vào chỉ mục bắt đầu trong lần gọi thứ hai tới phương thức filter()2 để loại trừ đối tượng khỏi mảng mới

Phương thức filter()2 không làm thay đổi mảng ban đầu

Biến id2 chứa tất cả các đối tượng của mảng ban đầu ngoại trừ đối tượng có thuộc tính id với giá trị là 3

Làm cách nào để xóa mục khỏi mảng dựa trên chỉ mục trong JavaScript?

Bạn có thể xóa phần tử tại bất kỳ chỉ mục nào bằng cách sử dụng phương thức nối . Nếu bạn có một mảng có tên là mảng, nó có thể được sử dụng theo cách này để loại bỏ một phần tử tại bất kỳ chỉ mục nào. mảng. splice(n, 1) , với n là chỉ số của phần tử cần xóa.

Làm cách nào để xóa một mục cụ thể khỏi mảng JavaScript?

Hàm bật () trong JavaScript. Phương thức này dùng để loại bỏ các phần tử ở cuối mảng. Hàm shift() trong JavaScript. Phương thức này được sử dụng để loại bỏ các phần tử từ đầu của một mảng. Hàm nối JavaScript (). Phương pháp này được sử dụng để xóa các phần tử khỏi chỉ mục cụ thể của một mảng