我有一个带有
的js'allociative'数组array['serial_number'] = 'value'
serial_number和value是字符串。
例如array['20910930923'] = '20101102'
我按值排序,工作正常。 假设我找回了“已排序”的对象;
现在我想访问'sorted'数组的第一个KEY。 我该怎么做?我不认为我需要使用
进行迭代for (var i in sorted)
并且在第一个之后停止......
感谢
编辑:只是为了澄清,我知道js不支持关联数组(这就是为什么我把它放在标题中的高位逗号中)。
答案 0 :(得分:4)
指定JavaScript对象属性没有订单much though many people wish it were different。如果您需要订购,请放弃任何使用对象的尝试,而是使用Array
来存储名称 - 值对象:
var nameValues = [
{name: '20910930923', value: '20101102'},
{name: 'foo', value: 'bar'}
];
...或作为与现有对象一起使用的有序属性名称列表:
var obj = {
'20910930923': '20101102',
'foo': 'bar'
};
var orderedPropertyNames = ['20910930923', 'foo'];
答案 1 :(得分:2)
试试这个:
// 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]];
答案 2 :(得分:1)
实际上JavaScript不支持关联数组,所以你不能以隐含的顺序遍历它(例如你无法通过索引器属性访问它array[0]
将无法访问你的第一个元素宾语)。语法是它看起来像它的样子,但实际上它没有。所以你的对象没有“订单”。
http://www.hunlock.com/blogs/Mastering_Javascript_Arrays
Javascript没有,也没有 支持关联数组。然而… Javascript中的所有数组都是对象 和Javascript的对象语法给出了一个 关联的基本模拟 阵列。出于这个原因的例子 上面的代码实际上会起作用是 警告说这不是一个真正的阵列 如果你试图,它有真正的pitfals 用它。中的'人'元素 示例成为Array的一部分 对象的属性和方法,只是 像.length,.sort(),. splice()和 所有其他内置属性和 方法
答案 3 :(得分:0)
只是想一想我的头脑,但是你可以换一个关键值对的另一个数组吗?
所以答案是arrayKeyValueReversed ['20101102'] ='20910930923';
对数组进行排序时,使用第一项(array [0])作为键来获取arrayKeyValueReversed中的值。