是否有一种优雅的方法来访问对象的第一个属性。。。
你不知道你的财产的名字而不使用像..这样的循环。。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 */}
};
当前回答
有什么理由不这样做吗?
> example.map(x => x.name);
(3) ["foo1", "foo2", "foo3"]
其他回答
尝试for…in循环,并在第一次迭代后中断:
for (var prop in object) {
// object[prop]
break;
}
否。MDN定义的对象文本是:
一个对象的零对或多对属性名和相关值的列表,用大括号({})括起来。
因此,对象文字不是数组,您只能使用其显式名称或使用in关键字的for循环访问财产。
顶部答案可以生成整个数组,然后从列表中捕获。这是另一个有效的捷径
var obj = { first: 'someVal' };
Object.entries(obj)[0][1] // someVal
如果有人喜欢数组销毁
const [firstKey] = Object.keys(object);
没有“第一”属性。对象键是无序的。
如果您使用for(var foo in bar)对它们进行循环,您将以某种顺序获取它们,但将来可能会发生变化(尤其是添加或删除其他键时)。