假设我们有以下的JavaScript对象:
ahash = {"one": [1,2,3], "two": [4,5,6]}
有没有一种函数可以返回给定对象的第一个键名?
从上面的示例中,我希望获得该函数的结果为one
。
假设我们有以下的JavaScript对象:
ahash = {"one": [1,2,3], "two": [4,5,6]}
有没有一种函数可以返回给定对象的第一个键名?
从上面的示例中,我希望获得该函数的结果为one
。
在JavaScript中,你可以做以下事情:
Object.keys(ahash)[0];
for (key in dict)
很可能比起 O(n) 能够显著地更快地执行,时间复杂度是 O(1)。这一点一点也不傻。 - Steven Lu您可以根据数组位置查询对象的内容。
例如:
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.
Object.keys(someRandomObject)
返回键,而不是任意顺序、随机顺序或其他特定顺序,而是按添加顺序排序。在Python中,你的答案是正确的,因为没有“第一个”键。(我猜想,在Python中返回的键的“顺序”与键哈希有关)。 - Jay Day Zee尝试这个:
for (var firstKey in ahash) break;
alert(firstKey); // 'one'
var
关键字;let
或 const
不足以满足要求。 - David Callanan如果您决定使用Underscore.js,最好这样做
_.values(ahash)[0]
获得价值,或者
_.keys(ahash)[0]
获取密钥。
使用Underscore.js,您可以执行以下操作:
_.find( {"one": [1,2,3], "two": [4,5,6]} )
findKey
方法,它返回键(而不是值)。 - XoXovar value = [1,2,3];
ahash = {"one": value};
array.push(value);
数组可以按照它们的顺序获取值,哈希表可以按照它们的键获取值。但是在添加和删除元素时要小心。
[first]
等于ahash
对象的第一个键名。 - Ntiyiso Rikhotso