私は、オブジェクトではないプロパティだけを含むオブジェクトのコピーを作成しようとしています。しかし、子オブジェクトはそれと共にコピーされます。オブジェクトであるすべてのプロパティのオブジェクトをフィルタリングするにはどうすればよいですか?
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;
}
またreturn newObject;
でreturn object;
を交換してみてくださいここhttps://jsfiddle.net/uss94sc3/1/
配列はオブジェクトであることに注意してください。それらも削除しますか? – Barmar
デバッガでプログラムをトレースしましたか? 'return'行に特に注意してください。 –