There is such a set of data:
const data = [
{
name: '一山',
surname: '张',
adress: '西藏',
area: '北京',
},
{
name: '一山',
surname: '李',
adress: '厦门',
area: '上海',
},
{
name: '尚山',
surname: '王',
adress: '宁夏',
area: '福州',
},
{
name: '一山',
surname: '张',
adress: '福建',
area: '厦门',
},
{
name: '五山',
surname: '张',
adress: '北京',
area: '北京',
},
]
Sort them according to surname+name+address. The knowledge point is the String.prototype.localeCompare method. It can sort according to different languages. The return value is -1,0,1. You can solve the problem by using the sort method.
const data = [
{
name: '一山',
surname: '张',
adress: '西藏',
area: '北京',
},
{
name: '一山',
surname: '李',
adress: '厦门',
area: '上海',
},
{
name: '尚山',
surname: '王',
adress: '宁夏',
area: '福州',
},
{
name: '一山',
surname: '张',
adress: '福建',
area: '厦门',
},
{
name: '五山',
surname: '张',
adress: '北京',
area: '北京',
},
]
const result = data.sort((a, b) => {
return (a.surname + a.name + a.adress).localeCompare(
b.surname + b.name + b.adress
)
})
console.log(result)