我的练习是使用 for...in 打印出对象中的所有键,打印出嵌套对象的键。但我不检查 nameValue 的值是否为对象
我尝试使用 for...in 但值检查的结果未定义
// My Exercises
var apartment = {
bedroom: {
area: 20,
bed: {
type: 'twin-bed',
price: 100
}
}
};
// Tried
function checkObj(objs) {
for (var obj in objs) {
console.log(obj);
var check = objs['obj'];
console.log(check);
}
}
checkObj(apartment);
最佳答案
在 JavaScript 中,typeof null
、typeof []
和 typeof {}
将返回 'object'
。
您可以检查 object
的 constructor.name
是否等于 'Object'
function checkObj(objs) {
for (var obj in objs) {
var isObj = objs[obj] && objs[obj].constructor.name === 'Object';
console.log('is Object:', isObj);
}
}
checkObj(apartment);
正如@ZivBen-Or 在评论中建议的那样,你也可以这样检查
Object.prototype.toString.call(obj[key]) === "[object Object]"
关于javascript - 如何检查对象中的key是一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56680024/