JS中一种快速浅复制数组的方法

今天,偶然在Javascript的练习中,发现了一种数据快速千夫指的方法:

var array = [1, 2, 3, 4, 5],
    copy = array.slice();
//  输出结果为false,说明它们指向了不同的数组对象    
alert(array == copy)

查阅JS手册,发现对slice方法的说明如下:

返回值
返回一个新的数组,包含从 startend (不包括该元素)的 arrayObject 中的元素。

说明
请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

再证明此方法为浅复制:

var array = [{name: 'yiifaa'}],
    copy = array.slice();
//  返回true,说明第一个元素完全相同    
alert(array[0] === copy[0])

结论

巧用Array.prototype.slice()方法,可以快速复制整个数组,当然,如果传入参数,也可以只负责一部分。

你可能感兴趣的:(实战技巧)