我昨天浏览了一些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”。我只是想知道它是如何通过在 allowedNull
上调用 indexOf
来工作的。有人可以解释一下这是如何工作的吗?
fiddle :Check
最佳答案
首先,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']
不会打印任何内容。
希望这能有所帮助! :)
关于JavaScript 空数组indexOf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32794324/