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

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

TypeScript 的數字數組總是排序的——即使它不是

TypeScript 的數字數組總是排序的——即使它不是

慕絲7291255 2023-06-15 17:37:16
我制作了一個函數來檢查數字數組是否已排序:const isSorted = (values: number[]) => {    return values === values.sort((a, b) => a - b);};isSorted([4, 2, 8, 7, 3, 10, 1, 5, 9, 6]); // Returns `true`如您所見,true無論輸入是什么,該函數都會返回,那么我怎樣才能使該函數正常工作呢?我在用:打字稿 v4.1.2ts節點v9.0.0節點.js v14.15.1
查看完整描述

4 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

你是在values跟自己比較。因此true。values您將必須手動檢查排序數組中給定索引上的每個元素是否與同一索引上數組中的每個元素相同。是這樣的:


const isSorted = (values: number[]) => {

? ? let sorted = values.slice().sort((a, b) => a - b)

? ? return isEqual(values, sorted);

};

查看完整回答
反對 回復 2023-06-15
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

在示例中,共享值與自身進行比較。為了達到預期效果,您需要手動實施排序。



查看完整回答
反對 回復 2023-06-15
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

sort方法就地對數組的元素進行排序,當然會返回原始數組。

如果您希望它保持未排序狀態,則需要復制原始數組。


查看完整回答
反對 回復 2023-06-15
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

遍歷數組并檢查是否有任何值大于下一個值。這應該是判斷它是否已排序的最快方法。


const isSorted = (values: number[]) => {

  let sorted = true;


  for (int i = 0; i < values.length - 1; i++) {

    if (values[i] > values[i+1]) {

      sorted = false;

      break;

    }

  }


  return sorted;

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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