我们有个简单的数据,是一系列数值。
需求是获得指定名次的数值是多少,例如获得第五名的数值。
我想到的方法是先排序,再取用下标取。
[HTML] 纯文本查看 复制代码 <!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>
arr = [10, 14, 12, 16, 8, 19, 10, 10, 15, 5, 14, 20]
// 获得从小到大的第五名
arr.sort((a, b) => a - b)
console.log(arr)
// [5, 8, 10, 10, 10, 12, 14, 14, 15, 16, 19, 20]
console.log('从小到大第五名:', arr[4])
// 从小到大第五名: 10
// 获得从大到小的第五名
arr.sort((a, b) => b - a)
console.log(arr)
// [20, 19, 16, 15, 14, 14, 12, 10, 10, 10, 8, 5]
console.log('从大到小第五名:', arr[4])
// 从大到小第五名: 14
</script>
</body>
</html>
想了解这种需求是否有更好的方法,有现成的函数实现吗?感谢各位大佬交流讨论。 |