Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查对象的一个属性是否为null或未定义_Javascript_Angularjs_Json - Fatal编程技术网

Javascript 检查对象的一个属性是否为null或未定义

Javascript 检查对象的一个属性是否为null或未定义,javascript,angularjs,json,Javascript,Angularjs,Json,我有一个这样的物体: $scope.contact = { name: contact.gd$name.gd$givenName.$t, familyName: contact.gd$name.gd$familyName.$t, phone: contact.gd$phoneNumber[0].$t, mail: contact.gd$email[0].address, organization: conta

我有一个这样的物体:

    $scope.contact = {
        name: contact.gd$name.gd$givenName.$t,
        familyName: contact.gd$name.gd$familyName.$t,
        phone: contact.gd$phoneNumber[0].$t,
        mail: contact.gd$email[0].address,
        organization: contact.gd$organization[0].gd$orgTitle.$t
    };
如何检查此对象以检查其属性是否为null/未定义,并告诉我是哪一个

我可以写一个循环,但如果有更快的方法,它可能会更好。

这样检查

var nullProps = Object.keys( $scope.contact ).filter( function( key, index, arr ){ return typeof $scope.contact[ key ] == "undefined";  })

这实质上是迭代对象
$scope的所有属性。请联系
,并仅返回值为
null
未定义的

的属性。您可以使用帮助函数筛选具有null/未定义值的键:

const obj={
姓名:'姓名',
id:1000,
这里:空,
父项:未定义,
零:零,,
布尔:错
}
const emptyKeys=obj=>Object.keys(obj.filter)(key=>obj[key]==null)
常数r=空项(obj);

控制台日志(r)你有5个属性,这个检查应该有多快?试试我的答案,希望它能起作用:)为什么我得到-1?这不是一个正确的问题?它表明没有研究努力,也不清楚。例如,为什么需要避免循环?是什么让你觉得循环速度有点慢?您的代码运行此检查多少次以使其影响整体应用程序性能?这与速度无关。这是为了提高代码的可维护性。如果我想在对象中添加一些属性,我不想在循环中添加行。我想写一个函数,比如@gurvinder372 writed,来检查我的obj
arr
中的所有索引是一个属性数组name
arr[key]
几乎肯定是未定义的。正确的检查应该是
$scope。联系[key]==null
,因为OP要求“null/undefined”@YuryTarabanko你是对的,我的错。不知怎的错过了;(@gurvinder372我猜它是在返回一个布尔值。
return typeof true;
这个解决方案仍然是一个被对象方法覆盖的循环。@Jai你的意思是
nullProps
将是一个
boolean
值的数组?
obj[key]==null
就是这样。只有
null
undefined
等于
null