亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript 數組中的第二大元素代碼錯誤

JavaScript 數組中的第二大元素代碼錯誤

倚天杖 2023-01-06 11:24:02
我寫這段代碼是為了獲得第二個最大值……它在 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];}
查看完整描述

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]);


查看完整回答
反對 回復 2023-01-06
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

嘗試這個:


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));



查看完整回答
反對 回復 2023-01-06
?
慕尼黑8549860

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 的數組...



查看完整回答
反對 回復 2023-01-06
?
慕的地10843

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];

}


查看完整回答
反對 回復 2023-01-06
  • 4 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號