牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2017-06-18 投稿人: 浏览次数:901

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

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

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

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

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

再证明此方法为浅复制:

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

结论

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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。