Diciamo che abbiamo JS oggetto:JS oggetto ha proprietà di controllo profondo
var object = {
innerObject:{
deepObject:{
value:'Here am I'
}
}
};
Come possiamo controllare se value
proprietà esiste? Vedo solo due modi:
primo:
if(object && object.innerObject && object.innerObject.deepObject && object.innerObject.deepObject.value) {
console.log('We found it!');
}
seconda:
if(object.hasOwnProperty('innerObject') && object.innerObject.hasOwnProperty('deepObject') && object.innerObject.deepObject.hasOwnProperty('value')) {
console.log('We found it too!');
}
Ma c'è un modo per fare un controllo profondo? Diciamo, qualcosa di simile:
object['innerObject.deepObject.value']
o
object.hasOwnProperty('innerObject.deepObject.value')
Certo, utilizzando qualsiasi di un numero, biblioteche che lo sostengono –
È possibile scrivere facilmente una funzione che accetta una stringa del genere, la divide in una matrice di nomi di proprietà e passa a un ciclo controllando se ciascuna proprietà esiste. – Barmar