JavaScript 数组中的第二大元素代码错误

我写这段代码是为了获得第二个最大值……它在 nums=[1,2,3,2,4] 这样的情况下有效,我得到的第二个最大值等于 3。但是如果 mu 数组是 [1,2,3, 4,5,6,7,8,9,10] 第二个最大值的输出是 8。请帮忙。


function getSecondLargest(arr){

  let uniqueArr = [ ...new Set(arr) ];

  uniqueArr.sort();

  const z= uniqueArr.length;

  return arr[z-2];

}


倚天杖
浏览 72回答 4
4回答

眼眸繁星

试试这个let intArray =[1,2,3,4,5,6,7,8,9,10];  console.log(intArray.sort((a, b) => b - a)[1]);

qq_遁去的一_1

尝试这个: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));

慕尼黑8549860

它按字母顺序对元素进行排序。尝试在排序中传递函数: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 的数组...

慕的地10843

它返回 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];}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript