Ejemplos de múltiples métodos para eliminar atributos de objetos en js

Ejemplos de múltiples métodos para eliminar atributos de objetos en js

1. Establezca la propiedad en indefinida.

La propiedad en sí seguirá existiendo en el objeto y también mutará el objeto original.

const pet = {
    
     
  species: 'dog', 
  age: 3, 
  name: 'celeste', 
  gender: 'female' 
}; 
pet.gender = undefined; 
Object.keys(pet); // ['species', 'age', 'name', 'gender'] 

2. Usar deleteoperador

eliminar eliminará completamente la propiedad del objeto, provocando cambios en el objeto original, pero es muy lento.

const pet = {
    
     
  species: 'dog', 
  age: 3, 
  name: 'celeste', 
  gender: 'female' 
}; 
delete pet.gender; 
Object.keys(pet); // ['species', 'age', 'name'] 

(1) El operador de eliminación elimina los atributos especificados del objeto y devuelve verdadero si la eliminación se realiza correctamente; de ​​lo contrario, devuelve falso.
(2) Si el atributo eliminado no existe, eliminar no tendrá ningún efecto, pero aún así devolverá verdadero.
(3) Si la cadena prototipo tiene un atributo con el mismo nombre, solo se eliminarán sus propios atributos.
(4) eliminar no puede eliminar funciones y atributos de alcance global declarados con let o const en el alcance.
(5) La función de eliminación puede eliminar objetos.
(6) Los atributos no configurables no se pueden eliminar. Como Math、Array、Objectpropiedades de objetos integradas y Object.defineProperty()propiedades establecidas mediante métodos.

3. Utilice la desestructuración de objetos.

Los objetos que requieren que se omitan propiedades específicas se pueden desestructurar en nuevos objetos utilizando el operador de extensión (…). Este truco es particularmente útil cuando es necesario eliminar varias propiedades sin cambiar el objeto original.

const pet = {
    
     
  species: 'dog', 
  age: 3, 
  name: 'celeste', 
  gender: 'female' 
}; 
 
const {
    
     gender, ...newPet } = pet; 
Object.keys(pet); // ['species', 'age', 'name', 'gender'] 
Object.keys(newPet); // ['species', 'age', 'name'] 

4. usoReflect

El nuevo método agregado en ES6, Reflect.deleteProperty (objeto, nombre de propiedad), devuelve un valor booleano.

const pet = {
    
     
  species: 'dog', 
  age: 3, 
  name: 'celeste', 
  gender: 'female' 
}; 
 
Reflect.deleteProperty(pet, 'gender')
Object.keys(pet); // ['species', 'age', 'name'] 

5. Eliminar elementos de la matrizdelete

delete arr[0];

delete: La longitud de la matriz permanece sin cambios después de la eliminación y los elementos bajo el índice original se vuelven nulos.
splice: Cambiará la matriz original.

Nota: No se puede eliminar lo siguiente:

(1) Variable var a=1 definida por var;eliminar a//falso
(2) Función a(){}; eliminar a//falso después de la declaración
(3) Propiedades definidas por el prototipo a.prototype.b=2;delete b//false
(4) Parámetros pasados ​​por la función function(a){delete a//false}
(5) Argumentos de eliminación de objetos integrados //falso

Se puede eliminar lo siguiente:

(1) Variable no definida b=1;eliminar b;//verdadero
(2) Eliminar los atributos del objeto var obj={x:1};delete obj.x;//true

Supongo que te gusta

Origin blog.csdn.net/weixin_44021888/article/details/130730818
Recomendado
Clasificación