js 对象数组乱序

JavaScript031

js 对象数组乱序,第1张

你可以随意 按照一个标准给 数组排序 就行了

比如a是的你的数组 然后根据a数组里面每个对象的id属性排序:

var a = []

a.sort(function (o, p) {

return o.id - p.id

})

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.lengthi <lengthi++) {

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])

})

是不是你页面中使用的编码不一样啊,

你要不把每个页面的head中都加一句

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

或者

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8">