我在代码块中获取类似于以下内容的键值时遇到了麻烦:
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?
任何帮助表示赞赏!!
答案 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;
}