Javascript - 当对象是对象数组时获取对象的键

标签 javascript jquery html arrays web

我在获取类似于以下代码块中的键值时遇到问题:

var someArray = [];
someArray.push(objX, objY, objZ); //each of these objects pushed in have 1 key/value pair

for (var i = 0; i < someArray.length; i++) {
    switch (Object.keys(someArray[i][0])) { //Not sure that "[i][0]" is valid?
        //now set tags using Jquery
    }
}

因此,在上面的代码示例中,我传递了一个对象数组(每个对象都是一个键/值对)。并且想要获取其中每个的键,以便我可以使用 Jquery 设置与每个对应的 HTML 标记。

想法:只要 [i] 就足够了,因为每个对象的键数组都只有 1?

任何帮助表示赞赏!

最佳答案

如果每个对象肯定只有一个可枚举属性,那么您可以使用 Object.keys(someArray[i])[0] 在循环中获取该属性的名称。 Object.keys 返回对象自己的可枚举属性名称的数组,[0] 从中获取第一个条目。 (当然,someArray[i][theName] 将为您提供该属性的。)

示例:

var objX = {
  x: "ecks"
};
var objY = {
  y: "why"
};
var objZ = {
  z: "zee"
};
var someArray = [];
someArray.push(objX, objY, objZ);

for (var i = 0; i < someArray.length; i++) {
  var arrayEntry = someArray[i];
  var name = Object.keys(arrayEntry)[0];
  console.log(name + " is " + arrayEntry[name]);
}

关于Javascript - 当对象是对象数组时获取对象的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39641153/

相关文章:

html - 不使用表格绘制 2x1 网格

php - 如何对列中的每三个元素施加唯一的样式属性?

asp.net - 使用 jQuery 在特定的 "ValidationGroup"中启用/禁用 asp.net 验证器控件?

javascript - 如何在 Angular2 中使用/包含 fabricjs

jquery - 在选择选项时选择重定向到 html 页面

javascript - 从头开始水平视差滚动 - 无插件 (jQuery)

jQuery - 如何动态地将列表项添加到无序列表?

javascript - 两列全高布局扩展以包含内容

javascript - 等待另一个不断变化的 Action 的最佳方法

javascript - IE 和 Safari 滚动条移动后不触发 mouseup 事件