Ich habe bereits einige der Antworten auf solche Frage überprüft, jedoch möchte ich meine Frage anders stellen.Überprüfen der Existenz verschachtelter Eigenschaft in einem Objekt Javascript
Können sagen, wir haben eine Zeichenfolge wie: „level1.level2.level3 ...“ die in einem Objekt namens Obj eine verschachtelte Eigenschaft gibt.
Der Punkt ist, dass wir können nicht wissen, dass wie viele verschachtelte Eigenschaften in dieser Zeichenfolge vorhanden sind. Zum Beispiel kann es "level1.level2" oder "level1.level2.level3.level4" sein.
Jetzt möchte ich eine Funktion, die die Obj und die Zeichenfolge der Eigenschaften als Eingabe, einfach sagen uns, ob eine solche verschachtelte Eigenschaft im Objekt vorhanden ist oder nicht (sagen wir wahr oder falsch als Ausgabe).
Update: Dank @Silvinus, ich habe die Lösung mit einer kleinen Modifikation gefunden:
private checkNestedProperty(obj, props) {
var splited = props.split('.');
var temp = obj;
for (var index in splited) {
if (temp[splited[index]] === 'undefined' || !temp[splited[index]]) return false;
temp = temp[splited[index]];
}
return true;
}
@Pedram, wollen Sie "Bericht" über Existenz jeder Eigenschaft oder nur für die meisten (letzten) geschachtelten erhalten? – RomanPerekhrest
@RomanPerekhrest In der Tat die meisten (letzten). Es ist jedoch offensichtlich, dass, wenn jede dieser Eigenschaften nicht existiert, die letzte nicht existiert :) – Pedram
Ich wundere mich, warum meine Frage eine Abstimmung unten erhalten sollte! – Pedram