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

时间:2016-09-22 13:58:33

标签: 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?

任何帮助表示赞赏!!

2 个答案:

答案 0 :(得分:2)

如果每个对象肯定只有一个可枚举属性,那么您可以使用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]);
}

答案 1 :(得分:0)

将数组中的对象用作真实对象。

var objX = {key: 'one', value: 'oneValue'};
var objY = {key: 'two', value: 'twoValue'};
var objZ = {key: 'three', value: 'threeValue'};

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++) {
    var obj = someArray[i];
    var key = obj.key;
    var value = obj.value;
}