javascript - 检查 JavaScript 数组中是否存在动态属性

标签 javascript arrays properties

我有可以动态向数组添加属性的代码。

data.tagAdded[tag.Name] = {
                    tag: tag,
                    count: 1,
                };

稍后在我的代码中,我需要检查 data.tagAdded 是否具有属性。如果它没有属性,我需要执行一些其他代码。问题是我不知道如何检查存在属性。

tagAdded = [] 始终是一个数组,而不是包含属性或不包含属性,因此我无法检查它是否为空。我不能说是否属性,因为我不知道属性的名称,因为它是动态的。我无法检查长度,因为具有属性的数组的长度为 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

关于javascript - 检查 JavaScript 数组中是否存在动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23681666/

相关文章:

javascript - 表单提交执行 JavaScript 最佳实践?

javascript - 如何将对象数组分配给AngularJS中的下拉列表?

javascript - 您如何为选择字段重新填充动态生成的选项?

ios - 如何从 URLSession 获取数组

java - JVM 系统属性 - 如何将其视为字符串文字

command-line - 如何从命令行定义 gradle 中的 teamcity ['build.number' ] 属性

javascript - Firebase 云功能 - 如何解决此错误 : ECONNRESET

c++ - 在 cout 语句中连接数组大小

java - 在字符串中表示 java 中的引号字符有哪些不同的方法?

java - PropertyPlaceholderConfigurers 的初始化顺序 (Spring 3)