对 arr 数组 按照 “time” 字段 和 “age” 字段进行降序排列
let arr = [
{
time: '2021-02-09',
data: [
{ name: 12, age: 10, id: 2001 },
{ name: 10, age: 11, id: 2010 },
{ name: 15, age: 34, id: 2008 },
{ name: 13, age: 20, id: 2008 },
]
},
{
time: '2021-02-01',
data: [
{ name: 12, age: 10, id: 2001 },
{ name: 10, age: 20, id: 2010 },
{ name: 15, age: 44, id: 2008 },
{ name: 13, age: 50, id: 2008 },
]
},
{
time: '2020-12-12',
data: [
{ name: 12, age: 11, id: 2001 },
{ name: 10, age: 50, id: 2010 },
{ name: 15, age: 11, id: 2008 },
{ name: 13, age: 18, id: 2008 },
]
},
{
time: '2021-06-07',
data: [
{ name: 12, age: 10, id: 2001 },
{ name: 10, age: 12, id: 2010 },
{ name: 15, age: 14, id: 2008 },
{ name: 13, age: 10, id: 2008 },
]
},
{
time: '2020-01-11',
data: [
{ name: 12, age: 20, id: 2001 },
{ name: 10, age: 10, id: 2010 },
{ name: 15, age: 25, id: 2008 },
{ name: 13, age: 15, id: 2008 },
]
},
]
arr.sort((a,b) => new Date(b.time).getTime() - new Date(a.time).getTime());
arr.map(item => {
item.data.sort((a,b) => b.age - a.age);
})
先对外面的进行sort,然后循环外层的再对里边的data进行age sort.
//第一层排序,倒序。如果需要正序,new Date里边把,a,b换一下位置就可以了
arr.sort((a,b)=>{return (new Date(b.time)).getTime()-(new Date(a.time)).getTime();})
分两次排序