好了,所以讓我們說,我有我的目標獲取JS對象的元素與索引
myobj = {"A":["B"], "B":["C"]}
,我希望得到的第一個元素出來。正如我希望它返回B
其索引A
。我該如何做一些沿着myobj[0]
的行,並走出B.
好了,所以讓我們說,我有我的目標獲取JS對象的元素與索引
myobj = {"A":["B"], "B":["C"]}
,我希望得到的第一個元素出來。正如我希望它返回B
其索引A
。我該如何做一些沿着myobj[0]
的行,並走出B.
JS對象沒有定義的順序,他們是(定義)未排序的鍵值對集。
如果 「第一次」 你的意思是 「先在字典序」,就可以使用,無論:
var sortedKeys = Object.keys(myobj).sort();
,然後使用:
var first = myobj[sortedKeys[0]];
呃...詞彙是什麼意思哈哈? – ChapmIndustries 2013-02-10 20:58:32
@ChapmIndustries詞法類似於字母,儘管在小寫之前默認採用大寫字母,因爲它只是查看每個字符的ASCII值。 – Alnitak 2013-02-10 20:59:00
「lexical」應該是「lexicographic」 – Barmar 2016-01-29 22:28:39
myobj.A
------ - 或----------
myobj['A']
會讓你'B'
但是OP的觀點是屬性名稱'A'不知道。 – 2013-02-10 21:00:11
如果你想要一個特定的順序,那麼你必須使用一個數組,而不是一個對象。對象沒有定義的順序。
例如,使用陣列,則可以這樣做:
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"]
我知道這是一個遲到的回答,但我認爲這是什麼OP要求。
myobj[Object.keys(myobj)[0]];
「屬性的排序與通過手動循環對象的屬性給出的排序相同。」如[鏈接]所示(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) – 2016-11-22 22:02:27
對於任何想要使用此功能的人,請記住並非全部瀏覽器支持Object.keys。看到這裏 - http://kangax.github.io/compat-table/es5/#test-Object.keys。 MDN還爲此提供了一個ployfill - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/keys。 – jeanfrg 2017-05-19 10:57:34
var myobj = {"A":["B"], "B":["C"]};
var keysArray = Object.keys(myobj);
var valuesArray = Object.keys(myobj).map(function(k) {
return String(myobj[k]);
});
var mydata = valuesArray[keysArray.indexOf("A")]; // B
我希望這將有助於
$.each(myobj, function(index, value) {
console.log(myobj[index]);
)};
您切換了右括號和大括號! – Syraxis 2017-07-12 15:36:19
你不能,可靠;不保證存儲在對象中的屬性的順序。 – 2013-02-10 20:57:20
你能構建一個不含糊的例子嗎?哪個'B'在這裏很重要? – Eric 2013-02-10 20:59:20