最近遇到了一个问题,是关于JavaScript中对数据进行map排序的问题。具体问题描述如下
有一个数组,数组中的包含很多个对象,对象中的key和value对应,并作为请求接口的参数进行拼接。要做的处理就是需要将这些对象中的key进行ASCII排序,然后再拼接成字符串作为请求接口的参数。
在JavaScript中的map是无序的,我们需要取出他们的key进行排列。然后再将他们拼接出来。
第一种方法
function displayDate(arr){
var arr= [
{name:"zhangsan",age:"12",sex:"f"},
{name:"list",age:"12",sex:"m"}
]
console.log(arr);
for(var i=0;i<arr.length;i++){
var keyArr = Object.keys(arr[i]).sort();
var temp = "";
for(var j=0;j<keyArr.length;j++){
var key = keyArr[j];
var value = arr[i][key];
if(j != keyArr.length -1){
temp += key+"="+value+"&";
}else{
temp += key+"="+value;
}
}
}
console.log(temp);
document.getElementById("demo").innerHTML=temp;
}
第二种方法
function displayDate(){
arr = [["orange", 10],["appple", 5], ["banana", 20], ["cherry", 13]];
arr.sort(function(a,b) {
return a[0]-b[0];
});
res = [];
arr.map(function(item){
res.push(item[0] + "=" + item[1]);
})
var str = "";
res.map(function(item, index){
if(index != res.length -1){
str = str + item +"&";
}
else{
str = str + item
}
});
document.getElementById("demo").innerHTML= str;
}
以上就是主要的过程