【面试题集—No.11】如何复制一个数组

写在前面:面试问到的话,需要尽可能多的把你在可以想到的方法答出来。在平时的算法练习中,拷贝数组是其中一个出现很频繁并且很重要的一步。这一章很轻松的~ 另外复习完这一部分,我接下来去整理一下常见的数组的API。

首先,大家一定知道!但我在啰嗦一句,显得我这个 菜 方方面面!

var arr=["teery","larry","tom","jacky"];
var arr1=arr;			//不是克隆
arr1==arr				//true,指向同一个对象

另外,这里是简单的针对数组的浅拷贝,关于拷贝的更深入学习。传送门 👉 【手写代码】深拷贝和浅拷贝

开始正题!!!

方法一:蛮力法

Array.prototype.myClone = function(){
    var result=[];
    for(i=0; i<this.length; i++){
        result.push(this[i]);   //向result数组尾部添加指定的值
    }
    return result;
}
// 使用
var arr = ["teery","larry","tom","jacky"];
let arr1 = arr.myClone()

方法二:slice()  从开始位置截取

let arr2 = arr.slice();

方法三:concat() 和一个空数组合并

let arr3 = [].concat(arr);

方法四:JSON字符串 JSON.stringify JSON.parse

let arr4 = JSON.parse(JSON.stringify(arr));   //先将arr转化为字符串,再将字符串转化为数组

方法五:扩展运算符(es6)

var arr5=[...arr];      //猜出数组中元素

方法六:Object.assign() 

诶,偷个对象的API用用 🚪传送门 👉【手写代码】Object.assign() 原理及实现 

var arr6=Object.assign([],arr);

方法七:lodash (es6拓展库)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值