javascript关联数组顺序混乱,怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript关联数组顺序混乱,怎么办?相关的知识,希望对你有一定的参考价值。

javascript 是通过对象来实现的 map 功能,枚举其属性时是无序的。其实多数语言的 map 为了提高检索效率都是进行了一定的排序,都不是按插入元素的顺序来枚举的,除非专门实现的 SortedMap 之类。
如果你需要查找,也需要顺序,数据少可以直接用数组
var dataList = [
key: \'01\',
value: \'01\'
,
key: \'02\',
value: \'02\'
,
key: \'10\',
value: \'10\'
,
key: \'11\',
value: \'11\'
,
key: \'21\',
value: \'21\'
]

// 通过遍历查找数据,如找 "11"
var v = (function(data, k)
for (var i = 0, length = data.length; i < length; i++)
if (data[i].key === k)
return data[i].value


)(dataList, "11")

如果数据比较多,可以使用 object + array 的办法,比如
全选复制放进笔记var data =
map:
\'01\': \'01\',
\'02\': \'02\',
\'10\': \'10\',
\'11\': \'11\',
\'21\': \'21\'
,
order: [
"01", "02", "10", "11", "21"
]


遍历数据可以这样
data.order.forEach(function(key)
console.log(key + " = " + data.map[key])
)
参考技术A javascript是通过对象来实现的map功能,枚举其属性时是无序的。其实多数语言的map为了提高检索效率都是进行了一定的排序,都不是按插入元素的顺序来枚举的,除非专门实现的SortedMap之类。
如果需要查找,也需要顺序,数据少可以直接用数组。

以上是关于javascript关联数组顺序混乱,怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 中创建一些关联数组

$.parseJSON 改变关联数组的顺序

js怎么把数组转换成json字符串

PHP如何跟踪关联数组中的顺序?

数组①数组遍历与属性

如何将数组值添加到关联数组的中间?