4 回答
TA贡献1873条经验 获得超9个赞
试试这个
let intArray =[1,2,3,4,5,6,7,8,9,10]; console.log(intArray.sort((a, b) => b - a)[1]);
TA贡献1725条经验 获得超7个赞
尝试这个:
let arr = [1,2,3,4,5,6,7,8,9,10];
function getSecondLargest(nums){
let sort = arr.sort((a, b) => a - b);
return sort[sort.length - 2]
}
console.log(getSecondLargest(arr));
TA贡献1818条经验 获得超11个赞
它按字母顺序对元素进行排序。尝试在排序中传递函数:
let arr1 = [1,2,3,2,4];
let arr2 = [1,2,3,4,5,6,7,8,9,10];
console.log( getSecondLargest(arr1) );
console.log( getSecondLargest(arr2) );
function getSecondLargest(arr){
let uniqueArr = [ ...new Set(arr) ];
uniqueArr.sort((a,b)=> a-b);
const z= uniqueArr.length;
return arr[z-2];
}
我建议您处理边缘情况,例如长度为 0 或 1 的数组...
TA贡献1785条经验 获得超8个赞
它返回 8 因为sort()默认情况下 javascript 中的方法按字母顺序对数组进行排序,因此将sort()方法应用于您将返回如下内容:-
[1,10,2,3,4,5,6,7,8,9]
因此,为了按数字对它们进行排序,您必须添加这个新方法,该方法通过使用 ES6 中的箭头函数进一步简化。以下将是您更新的代码:-
function getSecondLargest(arr){
let uniqueArr = [ ...new Set(arr) ];
uniqueArray.sort((a,b) => a-b);
const z= uniqueArr.length;
return arr[z-2];
}
添加回答
举报