JavaScript 空数组 indexOf
JavaScript Empty Array indexOf
昨天看了一些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)
方法 returns 可以在数组中找到给定元素的第一个索引,如果不存在则为 -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']
不会打印任何内容。
希望对您有所帮助! :)
昨天看了一些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)
方法 returns 可以在数组中找到给定元素的第一个索引,如果不存在则为 -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']
不会打印任何内容。
希望对您有所帮助! :)