JavaScript通过索引抓取对象/json

JavaScript通过索引抓取对象/json,javascript,arrays,object,Javascript,Arrays,Object,我知道如何通过索引获取数组。我也知道如何通过按键抓取对象,但我不想通过按键抓取 给你拿我的东西 var x = {"email":["This Position"]} 我知道我能抓住这个职位,就像写电子邮件一样 但问题是,我不能总是用x.email[0]抓住这个位置 因为服务器有时会这样发送给我: var x = {"phone":["This Position"]} 甚至在这样的时候:var x={“name”:[“this Position”]} 所以你知道抓住这个位置是不可能的,因为对

我知道如何通过索引获取数组。我也知道如何通过按键抓取对象,但我不想通过按键抓取

给你拿我的东西

var x = {"email":["This Position"]}
我知道我能抓住这个职位,就像写电子邮件一样

但问题是,我不能总是用
x.email[0]
抓住
这个位置

因为服务器有时会这样发送给我:

var x = {"phone":["This Position"]}
甚至在这样的时候:
var x={“name”:[“this Position”]}

所以你知道抓住
这个位置是不可能的,因为对于这些变量,我必须像
x.phone[0]
x.name[0]
那样编写

写上百个变量是非常困难的

 var x = {"email":["This Position"]}
所以我想抓住这个位置,而不是像这样
x.email[0]


你能给我一个解决方案,不管键名是什么,我只想抓住第一个值第一个键吗?有可能吗?

您可以使用
对象。值

var x = {"email":["This Position"]}
var value = Object.values(x)[0][0]

使用
Object.values
如下所示:

var x={“email”:[“此位置”]};
常量[[res]]=对象值(x);

控制台日志(res)这在JavaScript对象按插入顺序排序的实现中是可能的。与线程中的其他答案一起提供了一个很好的概述,说明了您何时可以依赖它以及在什么限制下。此答案的其余部分假设排序由ES实现保证

最直接的解决方案是使用
Object.values(obj)[0]
Object.keys(obj)[0]
Object.entries(obj)[0]
。然而,这些方法访问对象中的每个条目,这会导致O(n)时间复杂度,因此这些方法仅对性能不关键的简单用例有价值

const obj={
foobar:[“此位置”],
foobaz:[“那个职位”]
};
//简洁而线性:
console.log(Object.keys(obj)[0]);
console.log(Object.values(obj)[0]);
console.log(Object.entries(obj)[0]);
//由于需要第一个值的第一个数组元素,请使用:

console.log(Object.values(obj)[0][0])[[res]]是什么意思?我从未见过这种语法before@AmitBaranes它是双重解构-
[0][0]
对象。键的性能应该不会有问题。代码更清晰、更清晰。过早优化是万恶之源。