检查javascript数组中是否存在动态属性
我有一些代码可以动态地将属性添加到数组中检查javascript数组中是否存在动态属性,javascript,arrays,properties,Javascript,Arrays,Properties,我有一些代码可以动态地将属性添加到数组中 data.tagAdded[tag.Name] = { tag: tag, count: 1, }; 稍后在代码中,我需要检查data.tagAdded的属性。如果它没有属性,我需要做一些其他的代码。问题是我不知道如何检查存在属性 tagAdded=[]始终是一个数组,它是否包含属性,因此我无法检查它是否为null。我不能说如果属性,因为我不
data.tagAdded[tag.Name] = {
tag: tag,
count: 1,
};
稍后在代码中,我需要检查data.tagAdded的属性。如果它没有属性,我需要做一些其他的代码。问题是我不知道如何检查存在属性
tagAdded=[]
始终是一个数组,它是否包含属性,因此我无法检查它是否为null。我不能说如果属性,因为我不知道属性的名称,因为它是动态的。无法检查长度,因为具有属性的数组的长度为0
是否有其他方法检查属性是否存在?假设您只想查看是否已将任何键值对分配给关联数组(仅供参考,对于您正在执行的操作,对象可能会更好),可以执行以下操作:
function isEmpty(o) {
return !Object.keys(o).length && !o.length;
}
var x = [];
isEmpty(x);
=> true
x['foo'] = 'bar';
isEmpty(x);
=> false
delete x.foo;
isEmpty(x);
=> true
x.push(1);
isEmpty(x);
=> false
你可以试试
for (var prop in tagAdded) {
if (tagAdded.hasOwnProperty(prop)) {
console.log("property exists");
}
}
您只是想看看您的数组对象是否有任何元素分配给它,还是需要看看特定的键是否有一个与之关联的值?