首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS 数组克隆方法总结

JS 数组克隆方法总结

作者头像
前端迷
发布2019-12-05 15:29:08
1.7K0
发布2019-12-05 15:29:08
举报
文章被收录于专栏:前端迷前端迷

ES5 方法总结

slice

/1.slice方法

1) 作用:从一个数组中截取出新的数组

2) 格式:数组名.slice(begin,end);

 begin表示开的下标

 end表示结束的下标,但是在截取时不包含结束下标对应的元素

3) 注意:

 原数组不受影响

 如果只设置一个参数,即begin,那么会从begin截取到最后

 如果不写参数,那么slice方法可以实现数组的复制 */

let arr = [2,4,434,43]
let arr1= arr.slice()
arr[0] = 'a'
console.log(arr,arr1) // [ 2, 4, 434, 43 ]
console.log(arr1 === arr) // false
遍历数组
Array.prototype.clone = function(){
    let a=[];
    for(let i=0,l=this.length;i<l;i++) {
        a.push(this[i]);
    }
    return a;
}
let arr = ['aaa','bbb','ccc','wwwww','ddd']
let arr2 = arr.clone()
console.log(arr2)
console.log( arr2 === arr )
concat()

使用 concat() 用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

Array.prototype.clone=function(){ 
    return [].concat(this); 
    //或者 return this.concat();
}
let arr = ['aaa','asss']
let arr1 = arr.clone()
arr[0] = 123
console.log(arr,arr1)

ES6 方法总结

Object.assign() 浅复制,也可以实现数组的克隆
let arr = ['sdsd',123,123,123]
let arr1 = []
Object.assign(arr1,arr)
arr[1] = 'aaaa'
console.log(arr,arr1) //
 [ 'sdsd', 'aaaa', 123, 123 ]  
[ 'sdsd', 123, 123, 123 ]
扩展运算符
const a1 = [1, 2];

const a2 = [...a1];
a1[0] = 'aaa'
console.log(a1,a2)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端迷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ES5 方法总结
    • slice
      • 遍历数组
        • concat()
        • ES6 方法总结
          • Object.assign() 浅复制,也可以实现数组的克隆
            • 扩展运算符
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档