是否可以在javascript对象中检索第一个属性名称?
示例:
var example = {
'att1': { /* stuff1 */},
'att2': { /* stuff2 */},
'att3': { /* stuff3 */}
};
我正在寻找一个返回第一个属性名称的函数,即字符串:att1
。
答案 0 :(得分:2)
由于对象是无序的,您将无法获得“第一个”,但您可以迭代键名并检查特定值。
for (var key in example) {
if (key === 'att1') {
var val = example[key];
}
}
答案 1 :(得分:0)
在JavaScript中,对象与顺序无关,因此没有保证方式来确保第一个属性是您想要的。我看到它有两种选择......
选项1:使用数组
var example = [
{ /* stuff1 */},
{ /* stuff2 */},
{ /* stuff3 */}
];
现在您可以使用`example [0]。
安全地访问第一个对象 选项2:使用Object.keys
Object.keys
将在对象中的所有键(属性,如您所设置的)中创建一个数组。所以使用你的例子,它会像这样:
var example = {
'att1': { /* stuff1 */},
'att2': { /* stuff2 */},
'att3': { /* stuff3 */}
};
// This will produce this array: ['attr1','attr2','attr3']
var keys = Object.keys(example)
因此,keys
现在是所有对象属性名称的数组, if ( if 是此处的焦点你知道你正在寻找的具体名称,你可以直接遍历键,直到你发现它为止:
keys.map(function(key) {
if(key === 'attr1') {
/* do something with example[key] */
}
});
希望这有帮助!
答案 2 :(得分:0)
你可以让所有财产都这样做
var example = {
'att1': { /* stuff1 */},
'att2': { /* stuff2 */},
'att3': { /* stuff3 */}
};
for (var prop in example) {
console.log("example." + prop + " = " + example[prop]);
}
// Output:
// "example.att1 = { /* stuff1 */}"
// "example.att2 = { /* stuff2 */}"
// "example.att3 = { /* stuff3 */}"
你可以得到第一个属性吗
var example = {
'att1': { /* stuff1 */},
'att2': { /* stuff2 */},
'att3': { /* stuff3 */}
};
for (var prop in example) {
if (prop == 'att1') {
console.log("example." + prop + " = " + example[prop]);
}
}
// Output:
// "example.att1 = { /* stuff1 */}"
作为功能声明
var example = {
'att1': { /* stuff1 */},
'att2': { /* stuff2 */},
'att3': { /* stuff3 */}
};
function getFirstProp() {
for (var prop in example) {
if (prop == 'att1') {
return "example." + prop + " = " + example[prop];
}
}
}
console.log(getFirstProp());
// Output:
// "example.att1 = { /* stuff1 */}"
答案 3 :(得分:-1)
您可以使用 Object.keys 方法获取密钥。
Object.keys(example)[0]