Come rimuovo tutte le istanze di una chiave da un oggetto JavaScript? [chiuso]

-1

Ho un oggetto Java Script come questo:

let obj = {
    selected; true,
    level1: {
        level2: {
            selected: true
        }
    }
    level1: {
        selected: true,
        level2:{}
    }
};

Voglio rimuovere tutte le istanze di 'selected: true'. Come posso fare questo? Ho bisogno di una soluzione per essere generico perché non potrò mai sapere a che livello si trova.

In precedenza ho cercato di esaminare la libreria lodash ma la funzione omissione non è approfondita.

_.omit(obj, ['selected']);
// → no change
    
posta Kerry 30.06.2016 - 06:02
fonte

1 risposta

1

Lo farei in modo ricorsivo, qualcosa del genere:

 function removeProp(obj, propToDelete) {
  for (var property in obj) {
    if (obj.hasOwnProperty(property)) {
      if (typeof obj[property] == "object") {
        removeProp(obj[property], propToDelete);
      } else {
        if (property === propToDelete && obj[property] === true) {
          delete obj[property];
        }
      }
    }
  }
}

Ecco un violino: link

    
risposta data 30.06.2016 - 14:19
fonte

Leggi altre domande sui tag