Ich versuche, eine Kopie eines Objekts zu erstellen, das nur die Eigenschaften enthält, die keine Objekte sind. Aber die Kindobjekte werden mitkopiert.Wie kann ich ein Objekt aller Objekte filtern, die Objekte sind?
var testObject = {
stringProperty: "hi",
intProperty: 4,
objectProperty: {},
nullProperty: null
};
console.log(removeChildObjects(testObject));
function removeChildObjects(object) {
var keys = Object.keys(object);
var newObject = {};
keys.forEach(function(key) {
console.log(key, object[key], typeof object[key]);
if (typeof object[key] != "object") {
newObject[key] = object[key];
}
});
return object;
}
Auch es hier ansehen https://jsfiddle.net/uss94sc3/1/
Beachten Sie, dass Arrays Objekte sind, möchten Sie sie auch entfernen? – Barmar
Haben Sie Ihr Programm mit einem Debugger verfolgt? Achten Sie besonders auf die "Return" -Linie. –