var arr = [1, 2, 3, 4]
var arr1 = arr // 赋值操作,指向同一个内存空间
var arr2 = arr.slice() // 浅复制,元素的复制,arr2是新的数组
var arr3 = []arr.forEach((item) => { arr3.push(item)}) // 数组复制
var arr4 = []for (let i in arr) { arr4[i] = arr[i]}// 深拷贝,for in会迭代可以迭代的项,属性也会被拷贝关于
slice和splice- 这两个都作用于数组
-
slice(0, 2)和splice(0, 2)都是对截取下标为0到下标为2之间的元素,不包括2
-
slice()是对原数组进行处理,返回一个结果数组,原数组不变。
-
splice()也是返回一个结果数组,但是会改变原数组
splice()用于删除数组中某一个元素,例如
var arr = [1, 2, 3, 4]
arr.splice(0, 1)
// arr = [2, 3, 4]slice()用于获取数组中某一部分对象拷贝
var obj = {
a: 1
}
var obj1 = obj //引用
obj1 === obj // true
var obj2 = JSON.parse(JSON.stringify(obj)) // 对象复制
obj2 === obj // false