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,来检查我的objarr
中的所有索引是一个属性数组namearr[key]
几乎肯定是未定义的。正确的检查应该是$scope。联系[key]==null
,因为OP要求“null/undefined”@YuryTarabanko你是对的,我的错。不知怎的错过了;(@gurvinder372我猜它是在返回一个布尔值。return typeof true;
这个解决方案仍然是一个被对象方法覆盖的循环。@Jai你的意思是nullProps
将是一个boolean
值的数组?obj[key]==null
就是这样。只有null
和undefined
等于null