从 JavaScript 数组中返回前两个元素
javascriptweb developmentobject oriented programming更新于 2025/10/24 21:32:17
我们在 JavaScript 中有一个数字数组,其中包含未排序的数字。我们的工作是编写一个函数,该函数接受这个数字数组并返回一个包含两个元素的数组,即数组的前两个元素(数组中最大的两个元素)。
我们必须一次性完成此操作,即我们需要在线性时间内执行此方法,例如仅使用一个 for 循环,或者如果我们使用 ES6 函数,我们必须确保仅使用一次并避免方法嵌套,这会增加时间复杂度。
那么,现在让我们使用 Array.prototype.reduce() 方法编写代码 −
示例
const arr = [23, 65, 67, 23, 2, 6, 87, 23, 45, 65, 3, 234, 3];
const topTwo = arr => {
if(arr.length < 2){
return false;
};
return arr.reduce((acc, val) => {
if(val > acc[0]){
let t = acc[0];
acc[0] = val;
acc[1] = t;
}else if(val > acc[1]){
acc[1] = val;
};
return acc;
}, [-Infinity, -Infinity]);
};
console.log(topTwo(arr));
输出
控制台中的输出将是 −
[ 234, 87 ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

