JS json对象根据key值大小进行排序
把json对象的key和value值分别存进数组里
function czParms(pams) {
// 参数key键和val值分别重新组成数组
var arr=[]
for(let key in pams){
arr.push(key+':'+pams[key])
}
var array1 = [] //key数组
var array2 = [] //val数组
for (var i = 0; i < arr.length; i++) {
array1 = array1.concat(arr[i].split(":")[0])
array2 = array2.concat(arr[i].split(":")[1])
}
let eidtionTypeList = [];
//组成待验证加密数组
for (let i = 0; i < arr.length; i++) {
eidtionTypeList.push({
key: array1[i],
val: array2[i],
})
}
eidtionTypeList.sort(sortkey)
}
根据key值按字母从小到大进行排序
// 按参数key按字母从小到大排序
function sortkey(val1, val2) {
// 转换
val1 = val1.key.toLowerCase();
val2 = val2.key.toLowerCase();
// 获取较长元素的长度
var length = val1.length > val2.length ? val1.length : val2.length;
// 依次比较字母的unicode码,相等时返回0,小于时返回-1,大于时返回1
for (var i = 0; i < length; i++) {
var differ = val1.charCodeAt(i) - val2.charCodeAt(i);
if (differ == 0) {
continue;
} else {
if (val1.charAt(i) == '_') {
return -1;
}
return differ;
}
}
if (i == length) {
return val1.length - val2.length;
}
}
排序完以后根据后台需要的数据结构进行拼接
//根据自己的接口需要的数据结构进行拼接
var data=''
for(var i=0;i <eidtionTypeList.length;i++){
data+=eidtionTypeList[i].key+'='+eidtionTypeList[i].val+'&'
}