Làm cách nào để xóa hai phần tử đầu tiên khỏi mảng trong JavaScript?

Trong Javascript, có hai phương thức trong Array.prototype để xóa phần tử đầu tiên của một mảng. shift[]splice[]

shift[]

shift[] không chấp nhận bất kỳ đối số nào. Nó trả về phần tử đầu tiên của mảng và xóa phần tử đó khỏi mảng

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.shift[];                  // returns 1console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
mối nối [bắt đầu, xóaĐếm]

Để xóa phần tử đầu tiên, chúng tôi sẽ cần cung cấp hai đối số cho splice[]. Đối số đầu tiên là start, là chỉ mục của mục chúng tôi đang xóa. Vì chúng tôi đang xóa mục đầu tiên, bắt đầu là 0 trong trường hợp này

Đối số thứ hai là

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
0, là số mục chúng tôi muốn trích xuất. Vì chúng tôi chỉ xóa một mục nên số lần xóa là
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
1

Điều quan trọng cần lưu ý là splice[] trả về một mảng, không phải một mục. Trong ví dụ bên dưới, chúng ta thấy rằng mối nối trả về một mảng chứa mục đầu tiên, đó là

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
1

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
Cái nào nhanh hơn?

Chạy thử nghiệm trên jsperf. com, chúng tôi có một người chiến thắng rõ ràng. Sử dụng shift[] để loại bỏ phần tử đầu tiên chỉ mất 10% thời gian của splice[]

Sử dụng shift[] chắc chắn là sự lựa chọn tốt hơn

splice[] chậm hơn 88% so với shift[] Tại sao shift[] lại nhanh hơn nhiều?

Hãy đi sâu vào để xem những gì đang xảy ra dưới mui xe. Dưới đây là tóm tắt nhanh về cách thức hoạt động của từng phương pháp

sự thay đổi[]

  1. Đặt
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    7 bằng với
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    8
  2. Đối với mỗi mục tiếp theo [
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    9, Array.prototype0,…] hãy giảm chỉ số của chúng đi 1. Vì vậy,
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    9 trở thành
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    8, Array.prototype0 trở thành
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    9, v.v.
  3. Xóa phần tử cuối cùng của mảng Array.prototype5
  4. Trở lại
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    7

mối nối [0, 1]

  1. Tạo một mảng mới Array.prototype7 với biểu thức Array.prototype8
  2. Đặt Array.prototype9 bằng với shift[]0
  3. Đối với mỗi mục tiếp theo [
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    9, Array.prototype0,…] hãy giảm chỉ số của chúng đi 1. Vì vậy,
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    9 trở thành
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    8, Array.prototype0 trở thành
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];array.splice[0, 1];             // returns [1]console.log[array];             // prints [2, 3, 4, 5, 6, 7, 8, 9]
    9, v.v.
  4. Xóa phần tử cuối cùng của mảng Array.prototype5
  5. Trả lại shift[]8

Sự khác biệt chính giữa hai phương pháp nằm ở Bước 1 và 2. splice[] tạo một mảng mới và điền nó vào mục đầu tiên. Việc khởi tạo và định nghĩa thuộc tính không tồn tại trước đây 0 tương đối tốn kém về mặt tính toán

TLDR / Kết luận

Nếu tất cả những gì bạn cần làm là xóa phần tử đầu tiên, hãy luôn sử dụng shift[] vì nó nhanh hơn nhiều. Mặc dù splice[] là một phương thức mạnh mẽ có thể thực hiện các tác vụ như chèn và trích xuất nhiều lần, nhưng nó không phù hợp với tác vụ này vì nó khởi tạo và thao tác một mảng không cần thiết

Làm cách nào để xóa phần tử đầu tiên trong mảng trong JavaScript?

Phương thức shift[] xóa phần tử đầu tiên khỏi một mảng và trả về phần tử đã xóa đó. Phương thức này thay đổi độ dài của mảng.

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

Có thể xóa các phần tử mảng bằng cách sử dụng toán tử JavaScript delete . Sử dụng xóa để lại các lỗ không xác định trong mảng. Thay vào đó, hãy sử dụng pop[] hoặc shift[].

Làm cách nào để xóa 3 phần tử cuối cùng khỏi mảng trong JavaScript?

Phương thức javascript pop[] . Nó được sử dụng để loại bỏ phần tử cuối cùng khỏi mảng. Điều này có thể được lặp lại trong một vòng lặp gồm n lần lặp để loại bỏ n phần tử cuối cùng của mảng bằng cách sử dụng vòng lặp while.

Làm cách nào để xóa phần tử đầu tiên trong đối tượng JavaScript?

Dịch chuyển mảng JavaScript[] . Phương thức shift[] thay đổi mảng ban đầu. The shift[] method removes the first item of an array. The shift[] method changes the original array.

Chủ Đề