有人可以解释一下这两个函数的不同输出吗?
var reverse = function(string) {
var myArray = string.split('').reverse().join('');
return myArray;
}
alert(reverse("this is a string")); // gnirts si a siht
var reverse = function(string) {
var myArray = string.split('');
myArray.reverse();
myArray.join('');
return myArray;
}
alert(reverse("this is a string")); // g,n,i,r,t,s, ,s,i, ,a, ,s,i,h,t
最佳答案
在第二个函数中,您将分割一个字符串,然后返回反转的数组。
.join()
方法不会改变它正在操作的 myArray
变量,因此就像 .join()
一样甚至没有被召唤。换句话说,
myArray.join('');
与以下内容不同:
myArray = myArray.join('');
这将为您提供与第一个函数相同的结果:
var reverse = function(string) {
var myArray = string.split('');
myArray.reverse();
myArray = myArray.join('');
return myArray;
}
..或者您可以只返回连接的数组:
return myArray.join('');
关于javascript - 相同功能的不同输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33722971/