让我们假设我们有以下JavaScript对象:

ahash = {"one": [1,2,3], "two": [4,5,6]}

是否有一个函数返回给定对象的第一个键名?

从上面的例子中,我想得到一个函数的结果。


当前回答

您可以根据对象的数组位置查询对象的内容。例如:

 let obj = {plainKey: 'plain value'};

 let firstKey = Object.keys(obj)[0]; // "plainKey"
 let firstValue = Object.values(obj)[0]; // "plain value"

 /* or */

 let [key, value] = Object.entries(obj)[0]; // ["plainKey", "plain value"]

 console.log(key); // "plainKey"
 console.log(value); // "plain value"

其他回答

哈希中没有“第一个”键(Javascript称它们为对象)。它们基本上是无序的。你是说随便选一个键

for (var k in ahash) {
    break
}

// k is a key in ahash.

使用Underscore.js,你可以做到

_.find( {"one": [1,2,3], "two": [4,5,6]} )

它将返回[1,2,3]

如果你决定使用Underscore.js,你最好这样做

_.values(ahash)[0]

获得价值,或者

_.keys(ahash)[0]

得到钥匙。

在Javascript中,你可以这样做:

Object.keys(ahash)[0];

我使用Lodash是出于防御性编码的原因。

特别是,在某些情况下,我不知道在我试图获取键的对象中是否会有任何属性。

Lodash的“完全防御”方法将使用两个密钥以及get:

const firstKey = _.get(_.keys(ahash), 0);