我昨天经历了一些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
具有空属性,则该脚本实际上会在控制台中打印“空” 。我只是想知道,它是如何工作的调用indexOf
上allowedNull
。有人可以解释一下它是如何工作的。
小提琴:检查
首先,该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']
任何内容。
希望这会有所帮助!:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句