[英]Why does one code work, but not the other?
我正在回答的問題:完成解決方案,以便它反轉傳遞給它的字符串值。
我回答了這個:
function solution(str){
str.split("").reverse().join("");
return(str);
}
但這沒用
相反,這是正確的解決方案:
function solution(str){
return str.split("").reverse().join("");
}
為什么第二個解決方案有效而第一個解決方案無效?
在第一個變量中,不會重新定義變量str
,因此最終將返回原始值。 您需要這樣做:
function solution(str){
str = str.split("").reverse().join("");
return(str);
}
字符串是不可變的。 任何“改變”字符串的方法實際上都會返回該字符串的新版本供您使用。
在第一位, split
, reverse
和join
都接受一個字符串,並返回一個新的string 。 他們不修改str
。 您正在使那些函數起作用,丟棄這些函數的結果,然后返回原始的str
。
第二個版本有效,因為join
返回一個新的連接的String,然后將該新字符串return
以返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.