str.reverse 函数反转全局范围内的每个数组
str.reverse function reversing every array in global scope
无法判断我的浏览器控制台是否有问题,或者发生了什么,因为我在使用反向功能时从未遇到过问题。
当我将以下内容放入 chrome 控制台时,
var a = ['one', 'two', 'three'];
var reversed = a.reverse();
console.log(a); // ['one', 'two', 'three']
console.log(reversed); // ['three', 'two', 'one']
我明白了
Array#reverse 就地工作,不会创建新数组。行
var reversed = a.reverse();
反转 a
并设置 reversed
引用同一个数组。
在此示例中,您可以看到将项目添加到 reversed
也会影响 a
,因为它们引用相同的数组:
var a = ['one', 'two', 'three'];
var reversed = a.reverse();
reversed.push(1000); // add something to reversed
console.log(a); // ['three', 'two', 'one', 1000]
console.log(reversed); // ['three', 'two', 'one', 1000]
要创建新数组,请在原始数组上使用 Array#slice,然后反转数组:
var a = ['one', 'two', 'three'];
var reversed = a.slice().reverse();
console.log(a); // ['one', 'two', 'three']
console.log(reversed); // ['three', 'two', 'one']
反向函数改变当前数组。将 reversed
声明为 a.reverse()
后,数组 a
也会发生变异。因此,您将为 console.log(a)
和 console.log(reversed)
打印出 ['three', 'two', 'one']
您想做的是克隆一个:
var a = ['one', 'two', 'three'];
var reversed = a.slice().reverse();
console.log(a); // ['one', 'two', 'three']
console.log(reversed); // ['three', 'two', 'one']
无法判断我的浏览器控制台是否有问题,或者发生了什么,因为我在使用反向功能时从未遇到过问题。
当我将以下内容放入 chrome 控制台时,
var a = ['one', 'two', 'three'];
var reversed = a.reverse();
console.log(a); // ['one', 'two', 'three']
console.log(reversed); // ['three', 'two', 'one']
我明白了
Array#reverse 就地工作,不会创建新数组。行
var reversed = a.reverse();
反转 a
并设置 reversed
引用同一个数组。
在此示例中,您可以看到将项目添加到 reversed
也会影响 a
,因为它们引用相同的数组:
var a = ['one', 'two', 'three'];
var reversed = a.reverse();
reversed.push(1000); // add something to reversed
console.log(a); // ['three', 'two', 'one', 1000]
console.log(reversed); // ['three', 'two', 'one', 1000]
要创建新数组,请在原始数组上使用 Array#slice,然后反转数组:
var a = ['one', 'two', 'three'];
var reversed = a.slice().reverse();
console.log(a); // ['one', 'two', 'three']
console.log(reversed); // ['three', 'two', 'one']
反向函数改变当前数组。将 reversed
声明为 a.reverse()
后,数组 a
也会发生变异。因此,您将为 console.log(a)
和 console.log(reversed)
['three', 'two', 'one']
您想做的是克隆一个:
var a = ['one', 'two', 'three'];
var reversed = a.slice().reverse();
console.log(a); // ['one', 'two', 'three']
console.log(reversed); // ['three', 'two', 'one']