[英]JavaScript - conditional throwing an uncaught syntax error
我目前正在研究一個挑戰,該挑戰是將以下函數中輸入的任意數量的任意數字轉換為貨幣(用字符串表示,其中每三個字符用逗號分隔)。 一切都還好,直到我意識到如果輸入的數字的長度為4,則需要將逗號放置為1,234,而不是123,4。 當我在for循環中包裝初始if語句時,該函數似乎已經失控了一些。 (1)我一直在控制台中拋出“ Uncaught SyntaxError:Unexpected token else”。 (2)我認為可能是由於嘗試在for / if / else周圍放置if / else而引起的。 任何有關我的錯誤的信息將不勝感激。 查理
function toCurrency(price){
var newStrng = price.toString().split("");
var stringCh = [];
if(newStrng.length===4){
console.log("gotcha");
stringCh = newStrng.splice(1,0,",");
return stringCh;
} else {
for(var i = 0; i < newStrng.length; i++) {
if(i %3 === 0 && i !== 0){
stringCh.push(",");
stringCh.push(newStrng[i]);
}
} else {
stringCh.push(newStrng[i]);
}
}
var finallyDone = stringCh.join("");
return finallyDone;
}//EO function
以下塊中的if
語句
for(var i = 0; i < newStrng.length; i++) {
if(i %3 === 0 && i !== 0){
stringCh.push(",");
stringCh.push(newStrng[i]);
}
} else {
stringCh.push(newStrng[i]);
}
}
在else
之前有一個額外的}
。 取出它,您應該不再會收到語法錯誤。
通過確保代碼正確縮進,可以使以后發現此類錯誤的過程變得更加容易,從而可以查看哪些括號與哪些塊相關聯。 盡管我很欣賞它可以在源代碼中適當縮進,並且可能沒有完美地復制到SO中。
在for
循環內的錯誤位置有一個}
,需要將其移動到else
塊之后。 實際上, if
語句位於for
循環中,而else
塊位於循環外部,這是無效的語法。
function toCurrency(price){
var newStrng = price.toString().split("");
var stringCh = [];
if(newStrng.length===4){
console.log("gotcha");
stringCh = newStrng.splice(1,0,",");
return stringCh;
} else {
for(var i = 0; i < newStrng.length; i++) {
if(i %3 === 0 && i !== 0){
stringCh.push(",");
stringCh.push(newStrng[i]);
} else {
stringCh.push(newStrng[i]);
}
}
}
var finallyDone = stringCh.join("");
return finallyDone;
}//EO function
刪除},
stringCh.push(newStrng[i]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.