我已經功能我有一個Codewars測試寫:的toString js函數內部返回undefined和0值
Your task is to make a function that can take any non-negative integer as a argument and return it with it's digits in descending order. Descending order means that you take the highest digit and place the next highest digit immediately after it.
這裏是我的功能:
function descendingOrder(n) {
// convert number into string
var toStr = n.toString();
console.log("converted to string:");
console.log(n);
// split string at "decimal" point
strArray = toStr.split(".");
console.log("split string");
console.log(strArray);
// create new array from decimal numbers
strArray.splice(0,1);
console.log("Array after split: " + strArray);
// split into array
for (var i=0; i<strArray.length; i++) {
var splitStrArray = strArray[i].split("");
}
console.log("new split str Array:");
console.log(splitStrArray);
// loop array and: 1) convert to number 2) push to new array of numbers
var numArray = [];
for (var j=0; j<splitStrArray.length; j++) {
numArray.push(Number(splitStrArray[j]));
}
// sort in descending order
numArray.sort(function(a,b){return b-a});
console.log("new array of numbers:");
console.log(numArray);
}
descendingOrder(1.45312798);
第一個問題: 尋找未定義的結果我收到以下錯誤:
TypeError: Cannot read property 'length' of undefined at descendingOrder at Object.exports.runInThisContext
我知道未定義的價值來自分配的結果n.toString給一個變量。
我試過如下:
var toStr = '';
toStr = n.toString();
,但無濟於事。
第二個問題: 有0它正在通過我的函數把
我沒有張貼此人之前一定MDN問題和其他問題的出放值。任何評論或批評我的邏輯關於Codewars挑戰是非常值得歡迎的。先謝謝您的幫助。
我沒有收到該錯誤。 – Xufox
將'n'轉換爲字符串檢查之前如果值爲空或空。如果它是UNDEFINED/NULL,它會拋出一個錯誤。 –
當輸入到控制檯時,它們都不是來自Codewars輸出。我應該指定道歉。但它仍然會在控制檯中爲我返回一個未定義的值。 –