好了,所以让我们说,我有我的目标获取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