簡體   English   中英

為什么一種代碼有效,而另一種無效?

[英]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);
}

字符串是不可變的。 任何“改變”字符串的方法實際上都會返回該字符串的新版本供您使用。

在第一位, splitreversejoin都接受一個字符串,並返回一個新的string 他們不修改str 您正在使那些函數起作用,丟棄這些函數的結果,然后返回原始的str

第二個版本有效,因為join返回一個新的連接的String,然后將該新字符串return以返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM