是否有一种优雅的方法来访问对象的第一个属性。。。
你不知道你的财产的名字而不使用像..这样的循环。。in或jQuery的$.each
例如,我需要在不知道foo1名称的情况下访问foo1对象:
var example = {
foo1: { /* stuff1 */},
foo2: { /* stuff2 */},
foo3: { /* stuff3 */}
};
是否有一种优雅的方法来访问对象的第一个属性。。。
你不知道你的财产的名字而不使用像..这样的循环。。in或jQuery的$.each
例如,我需要在不知道foo1名称的情况下访问foo1对象:
var example = {
foo1: { /* stuff1 */},
foo2: { /* stuff2 */},
foo3: { /* stuff3 */}
};
当前回答
尝试for…in循环,并在第一次迭代后中断:
for (var prop in object) {
// object[prop]
break;
}
其他回答
优雅地遍历键值的基本语法
const object1 = {
a: 'somestring',
b: 42
};
for (const [key, value] of Object.entries(object1)) {
console.log(`${key}: ${value}`);
}
// expected output:
// "a: somestring"
// "b: 42"
要获取对象中的第一个关键字名称,可以使用:
var obj = { first: 'someVal' };
Object.keys(obj)[0]; //returns 'first'
返回字符串,因此如果存在嵌套对象,则无法访问该对象,例如:
var obj={first:{someVal:{id:1}};使用该解决方案,您无法访问id。
如果您想获得实际对象,最好的解决方案是使用lodash,如:
obj[_.first(_.keys(obj))].id
要返回第一个键的值,(如果您不知道确切的第一个键名称):
var obj = { first: 'someVal' };
obj[Object.keys(obj)[0]]; //returns 'someVal'
如果您知道密钥名称,请使用:
obj.first
or
obj['first']
我们也可以采用这种方法。
var example = {
foo1: { /* stuff1 */},
foo2: { /* stuff2 */},
foo3: { /* stuff3 */}
};
Object.entries(example)[0][1];
单行版本:
var val = example[function() { for (var k in example) return k }()];
如果您需要访问“对象的第一个属性”,这可能意味着您的逻辑有问题。对象财产的顺序无关紧要。