javascript - 相同功能的不同输出

标签 javascript

有人可以解释一下这两个函数的不同输出吗?

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/

相关文章:

javascript - 根据依赖项列表订购对象数组?

javascript - 为什么不使用 localStorage 而不是 cookies? (在其他情况下也是如此)

javascript - Angular - 如何在开始时设置点击事件

javascript - React/Redux 搜索栏不工作

javascript - 按钮点击警报未触发

javascript - <input type ='file' > IE 给出完整路径,FF 只给出文件名(或目录浏览)

javascript - Twitter Bootstrap 表格可编辑的 json 数据

javascript - 立即在 Ember.js 中渲染

javascript - 如何检查字符串 "should not contain leading, trailing, and mutliple commas in middle"

javascript - 如何在发出Ajax请求时只等待1秒,但等待时间后不取消请求?