Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

177
Views
console.log() un objeto despojado de las claves seleccionadas

Tengo esto:

 let obj= { 'Cow' : 'Moo', 'Cat' : 'Meow', 'Dog' : 'Bark' };

Quiero console.log(JSON.stringify(obj_without_Cow)) , por lo que esto se registraría:

 { 'Cat' : 'Meow', 'Dog' : 'Bark' }

Podría delete Cow, desestructurar con rest o usar varios otros enfoques, pero me preguntaba si hay una manera de modificar solo lo que se pasa a console.log, como se muestra arriba. Es decir, sin código adicional fuera de console.log() .

De manera análoga, si estuviera registrando un str = 'xxxyyy' , podría eliminar todas las 'x': console.log(str.replaceAll('x','')) , es intuitivo probar console.log(delete obj.Cow) que, sin embargo, devuelve verdadero o falso, no el objeto modificado.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

sin código adicional fuera de console.log() .

Un IIFE hace maravillas para las frases ingeniosas:

 console.log( (({Cow, ...withoutCow}) => JSON.stringify(withoutCow))(obj) );

Alternativamente, puede usar el parámetro de JSON.stringify para replacer :

 console.log(JSON.stringify(obj, (key, val) => key == 'Cow' ? undefined : val));
about 4 years ago · Juan Pablo Isaza Report

0

Parece que necesita un interceptor console.log :

 console.log = (() => { const logger = console.log; return function (...args) { if (typeof args[0] === 'object') args[0] = Object.fromEntries(Object.entries(args[0]).filter(([key]) => !key.includes('Cow'))); else if (typeof args[0] === 'string') args[0] = args[0].replaceAll('x',''); return logger.apply(this, args); }; })(); let obj = { 'Cow' : 'Moo', 'Cat' : 'Meow', 'Dog' : 'Bark' }; let str = 'xxxyyy'; console.log(obj); console.log(str);

about 4 years ago · Juan Pablo Isaza Report

0

Si está utilizando Underscore.js o Lodash , hay una función 'omitir' que lo hará. https://lodash.com/docs#omit

 const thisIsObject= { 'Cow' : 'Moo', 'Cat' : 'Meow', 'Dog' : 'Bark' }; console.log(_.omit(thisIsObject,'Cow')); => {'Cat' : 'Meow', 'Dog' : 'Bark'}

O puede crear su propia función de omit desde JavaScript puro.

 const omit = (inputObject, removedKeys) => Object.keys(inputObject) .filter((key) => !removedKeys.includes(key)) .reduce((obj, key) => { obj[key] = inputObject[key]; return obj; }, {}); console.log(omit(thisIsObject,'Cow')); => {'Cat' : 'Meow', 'Dog' : 'Bark'}
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!