原数组:
var arr =[
{key:"insuranceId",value:"39"},
{key:"policyHolderBirthday",value:"19900909"},
{key:"insurant",value:"东东"},
{key:"policyHolder",value:"东东"},
{key:"insurantCardNo",value:"111111111111"},
{key:"insurantCardTypeId",value:"1"},
{key:"insurantBirthday",value:"19900909"},
{key:"insurantSex",value:"1"},
{key:"insurancePriceId",value:"1"},
{key:"policyHolderCardNo",value:"111111111111111"},
{key:"policyHolderCardTypeId",value:"1"},
{key:"policyHolderEmail",value:"11111111111111@qq.com"},
{key:"policyHolderPhone",value:"1"},
{key:"policyHolderSex",value:"1"},
{key:"relationId",value:"1"},
{key:"salesmanId",value:"1"},
]
函数一:
arr.sort(function(a, b){
return a.key+"">b.key+""
})
结果一:
[ { key: 'insurancePriceId', value: '1' },
{ key: 'insuranceId', value: '39' },
{ key: 'policyHolderCardNo', value: '11111111111111111' },
{ key: 'insurant', value: '东东' },
{ key: 'policyHolderCardTypeId', value: '1' },
{ key: 'insurantCardNo', value: '111111111111111111111' },
{ key: 'insurantBirthday', value: '19900909' },
{ key: 'insurantCardTypeId', value: '1' },
{ key: 'insurantSex', value: '1' },
{ key: 'policyHolder', value: '东东' },
{ key: 'policyHolderBirthday', value: '19900909' },
{ key: 'policyHolderEmail', value: '11111111111@qq.com' },
{ key: 'policyHolderPhone', value: '1' },
{ key: 'policyHolderSex', value: '1' },
{ key: 'relationId', value: '1' },
{ key: 'salesmanId', value: '1' } ]
函数二:
arr.sort(function(a, b){
a=a.key,b=b.key
let length = a.length > b.length ? a.length :b.length
for(let i = 0;i<length; i++){
if(a[i]==b[i]){
continue;
}else{
return a[i]+"">b[i]+""
}
}
})
结果二:
[ { key: 'insurancePriceId', value: '1' },
{ key: 'insuranceId', value: '39' },
{ key: 'policyHolderCardNo', value: '130681199009091238' },
{ key: 'insurant', value: '东东' },
{ key: 'insurantCardNo', value: '11111111111091238' },
{ key: 'insurantCardTypeId', value: '1' },
{ key: 'insurantBirthday', value: '19900909' },
{ key: 'insurantSex', value: '1' },
{ key: 'policyHolderBirthday', value: '19900909' },
{ key: 'policyHolderCardTypeId', value: '1' },
{ key: 'policyHolderEmail', value: '111111111111@qq.com' },
{ key: 'policyHolderPhone', value: '1' },
{ key: 'policyHolderSex', value: '1' },
{ key: 'policyHolder', value: '东东' },
{ key: 'relationId', value: '1' },
{ key: 'salesmanId', value: '1' } ]
你是用key进行sort()排序,都是字符串,并不是数字,所有js或默认将字符串转换为ASCII码,然后再进行排序,所以你看上去就感觉不对了,你查查你的字符串转成ASCII码后的值就明白了