如何访问‘;联想’;JavaScript中的数组?

如何访问‘;联想’;JavaScript中的数组?,javascript,key,associative-array,Javascript,Key,Associative Array,我有一个js“关联”数组,带有 array['serial_number'] = 'value' 序列号和值是字符串。 e、 g.数组['20910930923']='20101102' 我按值排序,效果很好。 假设我把对象“排序”回来 现在我想访问“排序”数组的第一个键。 我该怎么做?我不认为我需要一次迭代 for (var i in sorted) 在第一次之后停下来 谢谢 编辑:我只是想澄清一下,我知道js不支持关联数组(这就是为什么我在标题中用了高逗号)。实际上JavaScript不

我有一个js“关联”数组,带有

array['serial_number'] = 'value'
序列号和值是字符串。 e、 g.
数组['20910930923']='20101102'

我按值排序,效果很好。 假设我把对象“排序”回来

现在我想访问“排序”数组的第一个键。 我该怎么做?我不认为我需要一次迭代

for (var i in sorted)
在第一次之后停下来

谢谢


编辑:我只是想澄清一下,我知道js不支持关联数组(这就是为什么我在标题中用了高逗号)。

实际上JavaScript不支持关联数组,所以你不能按隐含顺序循环(例如,你不能通过索引器属性
数组[0]访问它)
将不会访问对象中的第一个元素)。语法使它看起来像是,但实际上它不是。因此,您对对象没有“顺序”

Javascript没有,也没有 支持关联数组。然而… Javascript中的所有数组都是对象 Javascript的对象语法给出了一个 关联系统的基本仿真 数组。因此,我们举了一个例子 上面的代码将实际工作。是 警告这不是一个真正的数组 如果你试着去做,它会有真正的陷阱 使用它。中的“person”元素 示例成为数组的一部分 对象的属性和方法,仅 例如.length、.sort()、.splice()和 所有其他内置属性和 方法


2021年更新

自ES6以来,具有字符串键的属性按插入顺序枚举。给你。我2010年的原始答案当时是正确的,现保存如下:

原始答案

JavaScript对象属性被指定为没有顺序。如果需要排序,请放弃使用对象的任何尝试,而是使用
数组
来存储名称值对象:

var nameValues = [
    {name: '20910930923', value: '20101102'},
    {name: 'foo', value: 'bar'}
];
。。。或作为要与现有对象一起使用的属性名称的有序列表:

var obj = {
   '20910930923': '20101102',
   'foo': 'bar'
};

var orderedPropertyNames = ['20910930923', 'foo'];

我在想,你能不能换一个键值对的数组

因此答案是arrayKeyValueReversed['20101102']='20910930923'

对数组进行排序时,请使用第一项(数组[0])作为键,以获取arrayKeyValueReversed中的值。

尝试以下操作:

// Some assoc list
var offers = {'x':{..some object...}, 'jjj':{...some other object ...}};

// First element (see attribution below)
return offers[Object.keys(offers)[0]];

// Last element (thanks to discussion on finding last element in associative array :)
return offers[Object.keys(offers)[Object.keys(offers).length - 1]];

嗯,对象是关联数组吗?JavaScript中没有关联数组,这都是一个大的怪物。@Anders;potato potahto,没有对象,它们都是大而奇怪的关联数组。JS对象当然可以用作关联数组,因此上面的链接(对我来说)似乎更容易误导而不是有用;走路像鸭子,说话像鸭子,我称之为鸭子。是的,它们在Javascript中被称为“对象属性”,但这并不能阻止它们成为关联数组。你粘贴的链接只是说它们不是线性阵列,当然也不是。如果你想说它们不是关联数组,请说出javascript对象不具备的关联数组的一个属性。你是如何对数组进行排序的?Emmett:这样做:只是为了澄清术语,你正在使用JS对象。JavaScript中的数组由整数索引。对象通过字符串/标识符进行索引,并且可以像这样访问属性:
obj['prop']
或者像这样:
obj.prop
,因此它的行为类似于关联数组和对象。