不使用sort,只遍历一次怎么拿到第二大值?
可以通过遍历数组,初始拿到前两个的值,每遍历一个元素就判断大小交换变量,保证每次遍历,a始终比b大,b也始终比后面遍历的值要大,如果不是则交换
let arr = [4, 5, 6, 2, 10]
let a = arr[0]
let b = arr[1]
// 之所以加1 就是为了让它多循环一次,不然最后一个为最大值的话,那么b将会是最大值,所以我要让它多判断一次 a 是否大于 b
for (let i = 2; i < arr.length + 1; i++) {
a < b && ([a, b] = [b, a]);
b < arr[i] && ([b, arr[i]] = [arr[i], b]);
}
console.log(b);