让我们假设我们有以下JavaScript对象:
ahash = {"one": [1,2,3], "two": [4,5,6]}
是否有一个函数返回给定对象的第一个键名?
从上面的例子中,我想获得one作为该函数的结果。
one
哈希中没有“第一个”键(Javascript称它们为对象)。它们基本上是无序的。你是说随便选一个键
for (var k in ahash) { break } // k is a key in ahash.
试试这个:
for (var firstKey in ahash) break; alert(firstKey); // 'one'
您可以同时将元素放入数组和散列中。
var value = [1,2,3]; ahash = {"one": value}; array.push(value);
Array可用于按顺序获取值,hash可用于按键获取值。当你删除和添加元素时,一定要随身携带。
在Javascript中,你可以这样做:
Object.keys(ahash)[0];
使用Underscore.js,你可以做到
_.find( {"one": [1,2,3], "two": [4,5,6]} )
它将返回[1,2,3]
如果你决定使用Underscore.js,你最好这样做
_.values(ahash)[0]
获得价值,或者
_.keys(ahash)[0]
得到钥匙。
我使用Lodash是出于防御性编码的原因。
特别是,在某些情况下,我不知道在我试图获取键的对象中是否会有任何属性。
Lodash的“完全防御”方法将同时使用键和得到:
const firstKey = _.get(_.keys(ahash), 0);
您可以根据对象的数组位置查询对象的内容。例如:< br >
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"