我上个天经历了一些JS代码,但我无法理解。这是代码
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
有一个空属性,脚本实际上会在控制台中打印“Empty”。我只是想通过indexOf
上的allowedNull
来了解它是如何工作的。有人可以解释一下这是如何运作的。
小提琴:Check
答案 0 :(得分: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
中打印,但是如果您在allowedNull数组test
中添加var allowedNull = ['test']
什么都不打印。
希望这可以提供帮助! :)