JavaScript:对于join()方法中的空标记,数组反转和联接未按预期工作

JavaScript:对于join()方法中的空标记,数组反转和联接未按预期工作,javascript,arrays,Javascript,Arrays,我正在尝试反转一个字符串,并对JavaScript中反转的内容应用join()方法。当我在join()方法中使用“-”或任何其他符号时,联接工作正常。但当我只使用(“”)或(“”)时,它只是连接原始数组,而不是反向数组。请帮助我了解实际的行为 考虑下面的代码 var a=[1,2,3]//实际阵列 console.log(a.reverse().join(“-”);//按预期工作。输出:“3-2-1” log(a.reverse().join(“”)//没有按预期工作。输出:“123”改变原始

我正在尝试反转一个字符串,并对JavaScript中反转的内容应用join()方法。当我在join()方法中使用“-”或任何其他符号时,联接工作正常。但当我只使用(“”)或(“”)时,它只是连接原始数组,而不是反向数组。请帮助我了解实际的行为

考虑下面的代码

var a=[1,2,3]//实际阵列
console.log(a.reverse().join(“-”);//按预期工作。输出:“3-2-1”
log(a.reverse().join(“”)//没有按预期工作。输出:“123”
改变原始数组

方法的作用是:将数组反转到位。第一个数组 元素成为最后一个,最后一个数组元素成为 首先

在这种情况下,您可以进行浅拷贝,然后使用
reverse

var a=[1,2,3]//实际阵列
console.log([…a].reverse().join(“-”);//按预期工作。输出:“3-2-1”

console.log([…a].reverse().join(“”)这只是在同一阵列上工作并执行两次反向操作的问题。让我们尝试这样做:

var a=[1,2,3];
const reversedArr=a.reverse();
console.log(reversedArr.join(“-”);

console.log(reversedArr.join(“”)
反转
反转原始数组中的元素

反向方法转置调用数组对象的元素 替换数组,并返回对数组的引用

var a=[1,2,3]//实际阵列
console.log(a.reverse().join(“-”);//按预期工作。输出:“3-2-1”

console.log(a.join(“”)//按预期工作。输出:“321”
如文档中所述“反向是破坏性的。它还改变了原始数组。”只需添加到第一条注释。。。所以你把你的阵列反转了两次。。。让它看起来像第二个
a.reverse()
不能正常工作,而它反转了已经反转的数组
a.slice().reverse()
,我认为这比创建一个浅拷贝要好。@MaheerAli只做同样的事情