Hướng dẫn how to delete properties from object javascript - cách xóa thuộc tính khỏi đối tượng javascript


Tìm hiểu cách xóa một thuộc tính khỏi đối tượng JavaScript.


Xóa thuộc tính khỏi một đối tượng

Toán tử xóa xóa một thuộc tính khỏi một đối tượng:delete operator deletes a property from an object:

Thí dụ

var person = {& nbsp; tên đầu tiên: "John", & nbsp; Tên cuối cùng: "doe", & nbsp; Tuổi: 50, & NBSP; Eyecolor: "màu xanh"};
  firstName:"John",
  lastName:"Doe",
  age:50,
  eyeColor:"blue"
};

xóa người.age; & nbsp; // hoặc xóa người ["Tuổi"];

// Trước khi xóa: person.age = 50, sau khi xóa, person.age = không xác định

Hãy tự mình thử »

Toán tử xóa xóa cả giá trị của thuộc tính và chính thuộc tính.

Sau khi xóa, tài sản không thể được sử dụng trước khi được thêm lại.

Toán tử xóa được thiết kế để sử dụng trên các thuộc tính đối tượng. Nó không có tác dụng đối với các biến hoặc chức năng.

Lưu ý: Không nên sử dụng toán tử xóa trên các thuộc tính đối tượng JavaScript được xác định trước. Nó có thể làm hỏng ứng dụng của bạn. The delete operator should not be used on predefined JavaScript object properties. It can crash your application.



Toán tử delete được sử dụng để loại bỏ các thuộc tính khỏi các đối tượng.

const obj = { foo: "bar" };

delete obj.foo;
obj.hasOwnProperty("foo"); // false

Lưu ý rằng, đối với các mảng, điều này không giống như loại bỏ một phần tử. Để loại bỏ một phần tử khỏi một mảng, sử dụng Array#splice hoặc

arr;             // [0, 1, 2, 3, 4]
arr.splice(3,1); // 3
arr;             // [0, 1, 2, 4]
0. Ví dụ:this is not the same as removing an element. To remove an element from an array, use Array#splice or
arr;             // [0, 1, 2, 3, 4]
arr.splice(3,1); // 3
arr;             // [0, 1, 2, 4]
0. For example:

arr;             // [0, 1, 2, 3, 4]
arr.splice(3,1); // 3
arr;             // [0, 1, 2, 4]

Thông tin chi tiết

Nói đúng ra, không thể thực sự xóa bất cứ điều gì trong JavaScript. Toán tử delete không xóa các đối tượng cũng như giải phóng bộ nhớ. Thay vào đó, nó đặt toán hạng của nó thành

arr;             // [0, 1, 2, 3, 4]
arr.splice(3,1); // 3
arr;             // [0, 1, 2, 4]
2 và thao túng đối tượng cha để thành viên biến mất.

let parent = {
    member: { str: "Hello" }
};
let secondref = parent.member;

delete parent.member;
parent.member;        // undefined
secondref;            // { str: "Hello" }

Đối tượng không bị xóa. Chỉ có tài liệu tham khảo là. Bộ nhớ chỉ được giải phóng bởi người thu gom rác khi tất cả các tham chiếu đến một đối tượng được xóa.

Một cảnh báo quan trọng khác là nhà điều hành delete sẽ không tổ chức lại các cấu trúc cho bạn, có kết quả có vẻ trái ngược. Ví dụ, xóa một chỉ mục mảng sẽ để lại một "lỗ" trong đó.

let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]

Điều này là do các mảng là đối tượng. Vì vậy, các chỉ số giống như các khóa.

let fauxarray = {0: 1, 1: 2, length: 2};
fauxarray.__proto__ = [].__proto__;
fauxarray.push(3);
fauxarray;                // [1, 2, 3]
Array.isArray(fauxarray); // false
Array.isArray([1, 2, 3]); // true

Các chức năng tích hợp khác nhau trong các mảng xử lý JavaScript với các lỗ hổng trong chúng khác nhau.

  • arr;             // [0, 1, 2, 3, 4]
    arr.splice(3,1); // 3
    arr;             // [0, 1, 2, 4]
    
    4 Các câu lệnh sẽ bỏ qua hoàn toàn chỉ mục trống.

  • Một vòng lặp

    arr;             // [0, 1, 2, 3, 4]
    arr.splice(3,1); // 3
    arr;             // [0, 1, 2, 4]
    
    5 ngây thơ sẽ mang lại
    arr;             // [0, 1, 2, 3, 4]
    arr.splice(3,1); // 3
    arr;             // [0, 1, 2, 4]
    
    2 cho giá trị tại chỉ số.

  • Bất kỳ phương thức nào sử dụng

    arr;             // [0, 1, 2, 3, 4]
    arr.splice(3,1); // 3
    arr;             // [0, 1, 2, 4]
    
    7 sẽ trả về
    arr;             // [0, 1, 2, 3, 4]
    arr.splice(3,1); // 3
    arr;             // [0, 1, 2, 4]
    
    2 cho giá trị tại chỉ mục.

  • arr;             // [0, 1, 2, 3, 4]
    arr.splice(3,1); // 3
    arr;             // [0, 1, 2, 4]
    
    9,
    let parent = {
        member: { str: "Hello" }
    };
    let secondref = parent.member;
    
    delete parent.member;
    parent.member;        // undefined
    secondref;            // { str: "Hello" }
    
    0 và
    let parent = {
        member: { str: "Hello" }
    };
    let secondref = parent.member;
    
    delete parent.member;
    parent.member;        // undefined
    secondref;            // { str: "Hello" }
    
    1 sẽ đơn giản bỏ qua chỉ mục bị thiếu, nhưng sẽ không xóa nóbut will not remove it

Thí dụ:

let array = [1, 2, 3]; // [1,2,3]
delete array[1];       // [1, empty, 3]
array.map(x => 0);     // [0, empty, 0]

Vì vậy, toán tử delete không nên được sử dụng cho trường hợp sử dụng phổ biến để loại bỏ các phần tử khỏi một mảng. Mảng có một phương pháp chuyên dụng để loại bỏ các yếu tố và bộ nhớ phân bổ lại:

let parent = {
    member: { str: "Hello" }
};
let secondref = parent.member;

delete parent.member;
parent.member;        // undefined
secondref;            // { str: "Hello" }
3 và
arr;             // [0, 1, 2, 3, 4]
arr.splice(3,1); // 3
arr;             // [0, 1, 2, 4]
0.

Mảng#splice (start [, deletecount [, item1 [, item2 [, ...]]]]]))

Array#splice làm biến đổi mảng và trả về bất kỳ chỉ số nào bị loại bỏ. Các phần tử

let parent = {
    member: { str: "Hello" }
};
let secondref = parent.member;

delete parent.member;
parent.member;        // undefined
secondref;            // { str: "Hello" }
6 được loại bỏ khỏi chỉ mục
let parent = {
    member: { str: "Hello" }
};
let secondref = parent.member;

delete parent.member;
parent.member;        // undefined
secondref;            // { str: "Hello" }
7 và
let parent = {
    member: { str: "Hello" }
};
let secondref = parent.member;

delete parent.member;
parent.member;        // undefined
secondref;            // { str: "Hello" }
8 được chèn vào mảng từ chỉ mục
let parent = {
    member: { str: "Hello" }
};
let secondref = parent.member;

delete parent.member;
parent.member;        // undefined
secondref;            // { str: "Hello" }
7. Nếu
let parent = {
    member: { str: "Hello" }
};
let secondref = parent.member;

delete parent.member;
parent.member;        // undefined
secondref;            // { str: "Hello" }
6 bị bỏ qua thì các phần tử từ startindex sẽ được loại bỏ đến cuối mảng.

let a = [0,1,2,3,4]
a.splice(2,2) // returns the removed elements [2,3]
// ...and `a` is now [0,1,4]

Ngoài ra còn có một chức năng tương tự, nhưng khác, trên

let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]
1:
let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]
2.

Mảng#lát ([bắt đầu [, kết thúc]])

let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]
2 không phá hủy và trả về một mảng mới chứa các chỉ số được chỉ định từ
let parent = {
    member: { str: "Hello" }
};
let secondref = parent.member;

delete parent.member;
parent.member;        // undefined
secondref;            // { str: "Hello" }
7 đến
let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]
5. Nếu
let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]
5 không được xác định, nó mặc định đến cuối mảng. Nếu
let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]
5 là dương, nó chỉ định chỉ số không bao gồm dựa trên không dừng tại. Nếu
let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]
5 là nó âm, nó chỉ định chỉ mục dừng lại bằng cách đếm lại từ cuối mảng (ví dụ: -1 sẽ bỏ qua chỉ số cuối cùng). Nếu
let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]
9, kết quả là một mảng trống.non-inclusive index to stop at. If
let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]
5 is negative it, it specifies the index to stop at by counting back from the end of the array (eg. -1 will omit the final index). If
let array = [0, 1, 2, 3]; // [0, 1, 2, 3]
delete array[2];          // [0, 1, empty, 3]
9, the result is an empty array.

let a = [0,1,2,3,4]
let slices = [
    a.slice(0,2),
    a.slice(2,2),
    a.slice(2,3),
    a.slice(2,5) ]

//   a           [0,1,2,3,4]
//   slices[0]   [0 1]- - -   
//   slices[1]    - - - - -
//   slices[2]    - -[3]- -
//   slices[3]    - -[2 4 5]

Array#pop

arr;             // [0, 1, 2, 3, 4]
arr.splice(3,1); // 3
arr;             // [0, 1, 2, 4]
0 loại bỏ phần tử cuối cùng khỏi một mảng và trả về phần tử đó. Hoạt động này thay đổi độ dài của mảng. Hoạt động ngược lại là
let fauxarray = {0: 1, 1: 2, length: 2};
fauxarray.__proto__ = [].__proto__;
fauxarray.push(3);
fauxarray;                // [1, 2, 3]
Array.isArray(fauxarray); // false
Array.isArray([1, 2, 3]); // true
1

Array#shift

let fauxarray = {0: 1, 1: 2, length: 2};
fauxarray.__proto__ = [].__proto__;
fauxarray.push(3);
fauxarray;                // [1, 2, 3]
Array.isArray(fauxarray); // false
Array.isArray([1, 2, 3]); // true
2 tương tự như
let fauxarray = {0: 1, 1: 2, length: 2};
fauxarray.__proto__ = [].__proto__;
fauxarray.push(3);
fauxarray;                // [1, 2, 3]
Array.isArray(fauxarray); // false
Array.isArray([1, 2, 3]); // true
3, ngoại trừ nó loại bỏ phần tử đầu tiên. Hoạt động ngược lại là
let fauxarray = {0: 1, 1: 2, length: 2};
fauxarray.__proto__ = [].__proto__;
fauxarray.push(3);
fauxarray;                // [1, 2, 3]
Array.isArray(fauxarray); // false
Array.isArray([1, 2, 3]); // true
4.

Làm thế nào bạn sẽ xóa thuộc tính của đối tượng trong JavaScript?

Trả lời: Sử dụng toán tử xóa Bạn có thể sử dụng toán tử xóa để xóa hoàn toàn các thuộc tính khỏi đối tượng JavaScript. Xóa là cách duy nhất để thực sự loại bỏ một thuộc tính khỏi một đối tượng.Use the delete Operator You can use the delete operator to completely remove the properties from the JavaScript object. Deleting is the only way to actually remove a property from an object.

Làm cách nào để loại bỏ tất cả các thuộc tính của một đối tượng?

Sử dụng một vòng lặp cho..in để xóa một đối tượng và xóa tất cả các thuộc tính của nó. Vòng lặp sẽ lặp lại trên tất cả các thuộc tính có thể suy nghĩ trong đối tượng. Trên mỗi lần lặp, sử dụng toán tử xóa để xóa thuộc tính hiện tại.. The loop will iterate over all the enumerable properties in the object. On each iteration, use the delete operator to delete the current property.

Những người vận hành nào có thể loại bỏ các thuộc tính khỏi một đối tượng?

Toán tử xóa loại bỏ một thuộc tính khỏi một đối tượng.Nếu giá trị của tài sản là một đối tượng và không còn tài liệu tham khảo nào đến đối tượng, đối tượng được giữ bởi thuộc tính đó cuối cùng được phát hành tự động.

Làm thế nào để bạn thêm và xóa các thuộc tính khỏi một đối tượng?

Thêm/xóa các thuộc tính khỏi một đối tượng: Để thêm bất kỳ thuộc tính nào, người ta có thể sử dụng object_name.property_name = value (hoặc) object_name [Để xóa bất kỳ thuộc tính nào, người ta có thể dễ dàng sử dụng Delete Object_Name.Property_name (hoặc) Xóa Object_Name [Property Property_Name]].object_name. property_name = value (or) object_name[“property_name”] = value. For deleting any property, one could easily use delete object_name. property_name (or) delete object_name[“property_name”].