gpt4 book ai didi

javascript - 如何过滤对象的所有属性?

转载 作者:行者123 更新时间:2023-12-03 07:03:31 25 4
gpt4 key购买 nike

我正在尝试创建一个仅包含非对象属性的对象的副本。但子对象会随之被复制。

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;
}

也可以在这里查看 https://jsfiddle.net/uss94sc3/1/

最佳答案

如果你想严格过滤掉对象属性(保留nullundefined属性),那么你不能依赖损坏的typeof一元运算符。

typeof null
// "object"

您可以将代码更改为:

function removeChildObjects(object) {
var keys = Object.keys(object);
var newObject = {};
keys.forEach(function(key) {
if (typeof object[key] != "object" || object[key] == null) {
newObject[key] = object[key];
}
});
return newObject;
}

或更简洁地使用下划线:

function removeChildObjects(object) {
return _.omit(object, _.isObject);
}

关于javascript - 如何过滤对象的所有属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36924835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com