结果图:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let data = [{
id: 1,
name: "咳咳",
value: 1
},
{
id: 2,
name: "一咳",
value: 12
},
{
id: 3,
name: "二咳",
value: 2
}
]
// 数据 是否改变原有数组顺序(默认不改变),若是对象按照 value 排序,large 获取最大还是最小值
function mySort(data, order = false, value, large) {
// 是否改变原有数组/对象
return fieldOrder(data = order ? data : data.slice(), value, large)
// 排序
function fieldOrder(data, value, large) {
data.sort((a, b) => {
return isObject(a) && isObject(b) ? a[value] - b[value] : a - b
})
// 是否获取最大值、最小值、全部内容
return large ? (large === "max" ? data[data.length - 1] : data[0]) : data
// 判断是否是对象
function isObject(number) {
return number instanceof Object
}
}
}
console.log(mySort(data, false,'value',))
console.log(mySort(data))
</script>
</body>
</html>