为什么一种代码有效,而另一种无效?

时间:2019-08-14 01:05:32

标签: javascript string join split reverse

我要回答的问题:完成解决方案,以便它反转传递给它的字符串值。

我回答了这个问题

function solution(str){
 str.split("").reverse().join("");
 return(str);
}

但是没用

相反,这是正确的解决方案:

function solution(str){
  return str.split("").reverse().join("");
}

为什么第二个解决方案有效,但第一个解决方案无效?

2 个答案:

答案 0 :(得分:0)

在第一个变量中,str没有得到重新定义,因此最终返回原始值。您需要这样做:

function solution(str){
 str = str.split("").reverse().join("");
 return(str);
}

答案 1 :(得分:0)

字符串是不可变的。任何“改变”字符串的方法实际上都会返回该字符串的新版本供您使用。

在第一位,Tsplitreverse都使用一个字符串,并返回一个新字符串。他们不会修改join。您正在使这些函数起作用,丢弃这些函数的结果,然后返回原始的str

第二个版本起作用是因为str返回了一个新的连接字符串,然后将该新字符串提供给join来返回。