在JavaScript里使用sort方法,根据数组对象里面的某个属性值进行从大到小,从小到大排序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
let list = [
{ name: "zs3", data: "20200110", age: 10 },
{ name: "zs6", data: "20200113", age: 13 },
{ name: "zs2", data: "20200109", age: 9 },
{ name: "zs8", data: "20200115", age: 15 },
{ name: "zs4", data: "20200111", age: 11 },
{ name: "zs1", data: "20200108", age: 8 },
{ name: "zs7", data: "20200114", age: 14 },
{ name: "zs5", data: "20200112", age: 12 }
]
/* -----------sort排序-------------------- */
/* let arr = [];
list.map(item => arr.push(item.data));
function sortNum(a, b) {
// return b - a;//从大到小
return a - b; //从小到大
}
arr.sort(sortNum);
let arr2 = [];
arr.forEach((v, i) => {
list.forEach(res => {
if (res.data === v) {
arr2.push(res);
}
});
});
list = arr2;
console.log(list);
*/
/* -----------sort排序 粗鲁方法-------------------- */
/*
let arr = [];
list.map(item => arr.push(item.data));
arr.sort();
let arr2 = [];
arr.forEach((v, i) => {
list.forEach(res => {
if (res.data === v) {
arr2.push(res);
}
});
});
// list = arr2; //从小到大
list = arr2.reverse();//从大到小
console.log(list);
*/
/* ---------根据某个属性值排序 1 --------------------- */
/* function compare(prop) {
return function (a, b) {
let v1 = a[prop];
let v2 = b[prop];
// return v1 - v2; //从小到大
return v2 - v1; //从大到小
};
}
list.sort(compare("data"));
console.log(list);
*/
/* ---------根据某个属性值排序 2 终极法--------------------- */
// let a = list.sort((a, b) => { return b.data - a.data });/* 从大到小 */
// console.log(a);
// let a = list.sort((a, b) => { return a.data - b.data });/* 正向排序 */
// console.log(a);
</script>
</body>
</html>