我要回答的问题:完成解决方案,以便它反转传递给它的字符串值。
我回答了这个问题
function solution(str){
str.split("").reverse().join("");
return(str);
}
但是没用
相反,这是正确的解决方案:
function solution(str){
return str.split("").reverse().join("");
}
为什么第二个解决方案有效,但第一个解决方案无效?
答案 0 :(得分:0)
在第一个变量中,str
没有得到重新定义,因此最终返回原始值。您需要这样做:
function solution(str){
str = str.split("").reverse().join("");
return(str);
}
答案 1 :(得分:0)
字符串是不可变的。任何“改变”字符串的方法实际上都会返回该字符串的新版本供您使用。
在第一位,T
,split
和reverse
都使用一个字符串,并返回一个新字符串。他们不会修改join
。您正在使这些函数起作用,丢弃这些函数的结果,然后返回原始的str
。
第二个版本起作用是因为str
返回了一个新的连接字符串,然后将该新字符串提供给join
来返回。