使用Array.prototype.reverse()

时间:2016-11-11 16:15:05

标签: javascript arrays reverse

我对console.log(a)的结果感到有点困惑。为什么数组中元素的顺序" a"被逆转了?我理解数组"逆转的逻辑,"但无法解决阵列发生的事情" a。"

Mozilla Developer Network(here)上的示例。

var a = ['one', 'two', 'three'];
var reversed = a.reverse(); 

console.log(a);        // ['three', 'two', 'one']
console.log(reversed); // ['three', 'two', 'one']

2 个答案:

答案 0 :(得分:5)

注意description

  

reverse方法转置调用数组对象的元素   到位改变数组,并返回对数组的引用

到位是发生这种情况的原因。

答案 1 :(得分:4)

reverse函数将就地反转数组(它修改/改变原始数组对象):

var a = ['one', 'two', 'three'];
a.reverse();
console.log(a);        // ['three', 'two', 'one']

如果你不想改变原始数组,你可以在反转之前做一个浅拷贝(使用slice函数):

var reversed = a.slice().reverse();
console.log(a);        // ['one', 'two', 'three']
console.log(reversed); // ['three', 'two', 'one']