Teniendo el objeto inicial de esta forma:
const initial = { a: 'a', b: 'b', c: 'c', d: 'd', ..., z: 'z' };El resultado debe contener todas las propiedades pero sin 'b', por ejemplo. Sé que hay un método como
const result = (({ a, b, c, d, ..., z }) => ({ a, c, d, ..., z }))(initial)pero en el caso de un objeto con demasiadas propiedades es demasiado código.
¿Hay una manera más corta de hacer eso?
Clona el objeto y elimina la propiedad:
const result = {...initial}; delete result.b;Use Object.entries() para convertir el objeto en una matriz. Use filter() para omitir ese elemento de la matriz. Use Object.fromEntries() para convertir ese resultado nuevamente en un objeto.
const result = Object.fromEntries(Object.entries(initial).filter(([key, value]) => key != 'b')) También puede utilizar la desestructuración. Enumere todas las propiedades que desea eliminar explícitamente en el objetivo de desestructuración, luego combine el resto en un nuevo objeto con ... .
const initial = { a: 'a', b: 'b', c: 'c', d: 'd', z: 'z' }; const {b, ...result} = initial; console.log(result);Puede copiar el objeto y luego eliminar una clave:
const initial = { a: 'a', b: 'b', c: 'c', d: 'd', ..., z: 'z' }; const result = {...initial}; // copy the array delete result.b;