美文网首页
数组的深浅拷贝

数组的深浅拷贝

作者: Allan要做活神仙 | 来源:发表于2017-05-31 08:49 被阅读13次
var a = [1,2,3];
var b = a;
b[0] = 5;
console.log(a,b);    // [5,2,3],[5,2,3]

像上面直接赋值的方式就是浅拷贝,但很多时候这并不是我们想要的结果,其实我们想要的是a数组不变,不是吗?

方法1:slice函数

对于array对象的slice函数,返回一个数组的一段。(仍为数组)
arrayObj.slice(start, [end])

var a = [1,2,3]
var b = a.slice(0)
b[0] = 5
console.log(a,b)    // [1,2,3], [5,2,3]

方法二:concat方法

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

var a = [1,2,3]
var b = a.concat()
b[0] = 5
console.log(a,b)      // [1,2,3], [5,2,3]

荆轲刺秦王

相关文章

  • js的深浅拷贝

    js的深浅拷贝可以分为数组的深浅拷贝和对象的深浅拷贝 一、数组的深浅拷贝如果只是简单的将数组中的元素付给另外一个数...

  • JS文集的目录

    js基础心法 深浅拷贝(递归)深浅拷贝(首层浅拷贝) js 数据处理 数组对象查找的常见操作数组对象去重的常见操作...

  • 数组、深浅拷贝

    如何判断数组类型 typeof ❌对Array不起作用,会将结果判断为object,同理null instance...

  • 数组的深浅拷贝

    像上面直接赋值的方式就是浅拷贝,但很多时候这并不是我们想要的结果,其实我们想要的是a数组不变,不是吗? 方法1:s...

  • 深浅拷贝

    深浅拷贝针对的是 对象类型,如果是字符串的数组用[...arr],还是不会影响 要区分针对数组的深浅拷贝(默认情况...

  • 重新认识js复杂类型数据的引用和深浅拷贝

    js 基本概念———— 数据类型 js 深浅拷贝之概念 代码实现 —— 数组和对象的j浅拷贝 代码实现 —— 数组...

  • iOS - 数组的深浅拷贝

    浅拷贝是指针拷贝,深拷贝是内容拷贝。copy拷贝出来的都是不可变对象;mutableCopy拷贝出来的都是可变对象...

  • 数组/对象的深浅拷贝

    浅拷贝 只复制了引用,没有复制真正的值; 实现数组浅拷贝可以利用arr.concat()、arr.slice()、...

  • js深浅拷贝

    所谓的深浅拷贝是相对与typeof === 'object' 而言的,数组是用堆对应保存的。浅拷贝:拷贝了对象的存...

  • js 高频面试题(最新)

    1、深浅拷贝 (1) 定义 浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引...

网友评论

      本文标题:数组的深浅拷贝

      本文链接:https://www.haomeiwen.com/subject/fdudfxtx.html