数组结构:
[
{
qingbodanbianhao: "AA-VV",
shengchanpihao: "22-58",
kunshufanwei: "1",
...
},
{
qingbodanbianhao: "BB-CC",
shengchanpihao: "88-98",
kunshufanwei: "2",
...
},
...
]
要求
先按?qingbodanbianhao排序,再按shengchanpihao排序,最后按kunshufanwei 排序。
处理方式
这里使用sort进行排序,sort属于原地排序。
由于qingbodanbianhao和shengchanpihao是字符串,且包含“-”号字符,所以,使用localeCompare进行字符串比较,比较前先使用replace对“-”号进行替换。
let dataSource = []
dataSource.sort((a,b) => {
let le = a.qingbodanbianhao ? a.qingbodanbianhao.replace(/-/g,"") : ""
let ri = b.qingbodanbianhao ? b.qingbodanbianhao.replace(/-/g,"") : ""
if(le .localeCompare( ri) == 0) {
let le = a.shengchanpihao ? a.shengchanpihao.replace(/-/g,"") : ""
let ri = b.shengchanpihao ? b.shengchanpihao.replace(/-/g,"") : ""
if(le.localeCompare( ri) == 0) {
if(parseInt(a.kunshufanwei) == parseInt(b.kunshufanwei)) {
return 0
}
return parseInt(a.kunshufanwei) - parseInt(b.kunshufanwei)
}
return le .localeCompare( ri )
}
return le .localeCompare( ri )
})
|