当我尝试使用Object.keys()读取其键时,我有一个正在评估为未定义的对象。但是,当我执行Object.keys()。length时,我得到1。
如果除了undefined或null之外的任何键,我如何测试对象是否存在。
我已尝试过以下操作,但仍然会出错。我基本上只是检查第一个元素,看它是否为null或未定义。我猜测可能有更好的方法来运行这种检查。
我已经搜索并查看了处理搜索特定属性的案例,但这不是我的对象设置方式。我实际上有一个嵌套对象的对象。 Player1
和Player2
可以是任何值。
var data =
{
player1:
{ team: team1,
score: 6 },
player2:
{ team: team2,
score: 4}
}
这是我的对象也可以是这样的,当我尝试循环并在表中显示它时,它会导致显示undefined
。
{ undefined:
{ team: undefined,
score: '0'} }
你可以看到做长度检查将返回1.所以我猜我必须检查第一个元素data[0]
?该检查有效,但这是处理此问题的最佳方法吗?
if (Object.keys(data[0]) === null){
do something
}
答案 0 :(得分:4)
if (Object.keys(data).length === 0){
// There are no keys
}
同时检查data
本身不是null
还是undefined
。
if (!data || typeof data !== "object" || Object.keys(data).length === 0) {
// This is either a null, undefined, not an object, or an object with no keys
}
答案 1 :(得分:4)
我有一个正在评估为未定义的对象
因为data[0]
未定义
直接使用
if ( Object.keys( data ).length == 0 )
{
do something
}