给你一个非空数组,返回此数组中第三大的数 。如果不存在,则返回数组中最大的数。请用JavaScript实现。
时间: 2023-03-27 12:02:37 浏览: 143
好的,我可以回答这个问题。以下是JavaScript的实现代码:
```javascript
function thirdMax(nums) {
let first = -Infinity;
let second = -Infinity;
let third = -Infinity;
for (let i = ; i < nums.length; i++) {
const num = nums[i];
if (num > first) {
third = second;
second = first;
first = num;
} else if (num > second && num < first) {
third = second;
second = num;
} else if (num > third && num < second) {
third = num;
}
}
return third !== -Infinity ? third : first;
}
```
这个函数接收一个数组作为参数,然后使用三个变量来记录数组中的前三大的数。遍历数组时,如果当前数比第一大的数还大,就把第一大的数、第二大的数和第三大的数都更新一下;如果当前数比第二大的数大但比第一大的数小,就把第二大的数和第三大的数更新一下;如果当前数比第三大的数大但比第二大的数小,就把第三大的数更新一下。最后,如果第三大的数存在,就返回它,否则返回第一大的数。
阅读全文