慕絲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);
};

慕勒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;
}
添加回答
舉報
0/150
提交
取消