53

好的,假设我有我的对象

myobj = {"A":["Abe"], "B":["Bob"]}

我想从中得到第一个元素。正如我希望它返回Abe索引为A. 我该如何做一些事情myobj[0]并摆脱“安倍”。

4

7 回答 7

96

我知道这是一个迟到的答案,但我认为这是 OP 所要求的。

myobj[Object.keys(myobj)[0]];
于 2014-07-17T08:26:49.130 回答
21

JS 对象没有定义的顺序,它们(根据定义)是一组未排序的键值对。

如果“第一个”是指“按字典顺序排列的第一个”,则可以使用:

var sortedKeys = Object.keys(myobj).sort();

然后使用:

var first = myobj[sortedKeys[0]];
于 2013-02-10T20:57:17.373 回答
8
myobj = {"A":["Abe"], "B":["Bob"]}

Object.keys(myobj)[0];  //return the key name at index 0
Object.values(myobj)[0]  //return the key values at index 0
于 2019-10-19T20:31:57.897 回答
2
var myobj = {"A":["Abe"], "B":["Bob"]};

var keysArray = Object.keys(myobj);

var valuesArray = Object.keys(myobj).map(function(k) {

   return String(myobj[k]);

});

var mydata = valuesArray[keysArray.indexOf("A")]; // Abe
于 2014-10-28T09:15:03.860 回答
1
myobj.A

- - - - 或者 - - - - -

myobj['A']

会给你'B'

于 2013-02-10T20:59:26.583 回答
0
$.each(myobj, function(index, value) { 
    console.log(myobj[index]);
});
于 2017-05-19T10:37:35.287 回答
-2

如果你想要一个特定的顺序,那么你必须使用一个数组,而不是一个对象。对象没有定义的顺序。

例如,使用数组,您可以这样做:

var myobj = [{"A":["B"]}, {"B": ["C"]}];
var firstItem = myobj[0];

然后,您可以使用 myobj[0] 获取数组中的第一个对象。

或者,取决于您要执行的操作:

var myobj = [{key: "A", val:["B"]}, {key: "B",  val:["C"]}];
var firstKey = myobj[0].key;   // "A"
var firstValue = myobj[0].val; // "["B"]
于 2013-02-10T20:59:51.120 回答