2015-09-26 64 views
0

我昨天经历了一些JS代码,但我无法理解。下面是代码JavaScript Empty Array indexOf

var data = { 
    name : 'Mr John', 
    age : '29', 
    location : 'New York', 
    profession : 'Accoutant' 
}; 

var allowedNull = []; 

for (var i in data) { 
    if (!data[i]) 
    { 

      if (allowedNull.indexOf(i) < 0) 
      { 
       console.log('Empty'); 
      } 
    } 
} 

脚本实际打印控制台“空”如果data有一个空的属性。我只想知道,通过allowedNull致电indexOf它是如何工作的。有人可以解释这是如何工作的。

小提琴:Check

回答

2

第一所有indexOf(i)方法返回在该给定元素可以在阵列中可以发现,或-1,如果它不存在的第一个索引。 在这种情况下,流程是:

//loop over data object 

for (var i in data) { 

//if the current property is empty/undefined 
if (!data[i]) 
{ 
     //and if this property is not present inside the allowedNull array 
     if (allowedNull.indexOf(i) < 0) 
     { 
      // print empty 
      console.log('Empty'); 
     } 
} 
} 

如果试图在数据添加对象test : ''你会得到印在控制台Empty的财产,但如果添加test的allowedNull阵列var allowedNull = ['test']里面什么也没有将打印。

希望这可以帮助! :)

+2

实际上allowedNull不是我的代码所必需的,因为它是空的而没有被使用。一些误解。 :|无论如何感谢您的帮助;) – noob