我是 Javascript 的新手,正在完成培訓練習。問題是回傳給定位數的最高結果。
示例:“678”應回傳 876。
這是我寫的代碼:
function max(n){ let r = ("" n).split("")
r.sort(function(a, b){return b-a});
let result = r.join("")
return result;
}
我安慰了一下result,看看它是否做了我需要的,并且會得到'876'我認為正確的結果,但是會導致測驗用例失敗并有回應expected '876' to equal 876
我四處搜索并最終找到了一個類似的解決方案,*1在結尾處添加join()如下:
let result = r.join("")*1
我無法理解為什么我需要它才能正確 - 有人可以幫助我理解為什么需要這樣做嗎?
uj5u.com熱心網友回復:
r.join("")*1將結果強制轉換為數字而不是回傳字串。似乎函式的輸出正在使用嚴格相等與預期結果進行比較,這也是一個數字。執行此操作的其他方法包括使用一元加號運算子(即 r.join(""))、Number函式和parseInt。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/381792.html
標籤:javascript 数组 排序 数字
