JavaScript中是否有一个“ not in”运算符来检查对象属性?

2020/10/19 07:21 · javascript ·  · 0评论

JavaScript中是否有某种“不在”运算符来检查对象中是否不存在属性?我在Google或Stack Overflow上找不到任何相关信息。这是我需要的这种功能的一小段代码:

var tutorTimes = {};

$(checked).each(function(idx){
  id = $(this).attr('class');

  if(id in tutorTimes){}
  else{
    //Rest of my logic will go here
  }
});

如您所见,我会将所有内容放到else声明中。看来我错了建立一个if-else语句只使用else部分。

设置if / else语句仅使用else部分对我来说似乎是错误的...

只需取消条件即可,您将获得else逻辑if

if (!(id in tutorTimes)) { ... }

就像Jordão所说的,只需否定它:

if (!(id in tutorTimes)) { ... }

注意:以上测试是否在原型链中的任何地方tutorTimes是否具有在id中指定名称的属性例如"valueOf" in tutorTimes返回true,因为它是在Object.prototype中定义的

如果要测试当前对象中是否不存在属性,请使用hasOwnProperty:

if (!tutorTimes.hasOwnProperty(id)) { ... }

或者,如果您可能具有hasOwnPropery键,则可以使用以下键:

if (!Object.prototype.hasOwnProperty.call(tutorTimes,id)) { ... }

我个人觉得

if (id in tutorTimes === false) { ... }

容易阅读比

if (!(id in tutorTimes)) { ... }

但两者都可以。

两种快速的可能性:

if(!('foo' in myObj)) { ... }

要么

if(myObj['foo'] === undefined) { ... }
本文地址:http://javascript.askforanswer.com/javascriptzhongshifouyouyige-not-inyunsuanfulaijianchaduixiangshuxing.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!