Quiero crear una nueva matriz de objetos sin el campo de género. ¿Dónde está el error?
let collections = [ { name: "Tom", gender: "male", age: 12 }, { name: "Becky", gender: "female", age: 11 }, { name: "Huck", gender: "male", age: 13 } ]; let newCollections = collections.slice(); let operations = { select: function () { let args = [].slice.call(arguments); for (let i = 0; i < newCollections.length; i++) { for (let key in newCollections[i]) { for (let j = 0; j < args.length; j++) { if (key !== args[j]) { delete key; return newCollections; } } } } } }; const result = operations.select("name", "age");// the list of fields to save console.log(result);Puedes hacerlo usando el método del mapa:
const array_without_gender = collections.map(el => { return {name: el.name, age: el.age}; })Este código creará una nueva matriz llena de objetos sin clave de género,
Puede crear una función omit() que devolverá un objeto sin una propiedad determinada.
Luego podemos usar Array.map() para ejecutar cada elemento en la matriz a través de esto:
let collections = [ { name: "Tom", gender: "male", age: 12 }, { name: "Becky", gender: "female", age: 11 }, { name: "Huck", gender: "male", age: 13 } ]; function omit(obj, field) { return (({ [field]: _, ...result }) => result)(obj); } let newCollections = collections.map(person => omit(person, 'gender')); console.log('New collections:', newCollections); .as-console-wrapper { max-height: 100% !important; top: 0; }