ES6 Array数组方法大全
数组浅拷贝和深拷贝的区别
浅拷贝
如果数组元素是基本类型,就会拷贝一份,互不影响,而如果数组元素是数组或者对象,就会拷贝对象的和数组的引用,我们无论在新旧数组进行修改,两者都会发生变化。
深拷贝
深拷贝就是完全的拷贝一个对象,即使嵌套了对象,两者也相互分离,修改一个对象的属性,也不会影响另一个
concat()
合并两个或多个数组,返回一个新的数组
const arr1 = [1,2,3]
const arr2 = arr1.concat( [4,5] )
console.log( arr2 ) // [1,2,3,4,5]
join()**
返回一个字符串,元素是通过指定的分隔符进行分隔
const arr = [ " George "," John "," Thomas " ]
console.log( arr.join() ) // George,John,Thomas 默认分隔符是:逗号 “ , ”
pop()
用于删除并返回数组的最后一个元素
const arr = [1,2,3]
console.log( arr.pop() ) // 3
console.log(arr) // [1,2]
shift()
用于删除第一个元素并返回数组的第一个元素的值
const arr = [1,2,3]
console.log(arr.shift()) // 1
console.log(arr) // [2,3]
unshift()
在数组的开头增加一个或多个元素,并返回数组的新长度
const arr = [2,3,4]
const arr2 = [0,1]
arr.unshift(arr2) // 5
console.log(arr) // [0,1,2,3,4]
push()
可向数组的末尾添加一个或多个元素,并返回新的长度
const arr = [1,2,3]
arr.push(4) // 返回新的长度:4
console.log( arr ) // [1,2,3,4]
reverse()
用于颠倒数组中元素的顺序,该方法会改变原来的数组,不会创建新的数组
const arr = [1,2,3]
console.log( arr.revese() ) // [3,2,1]
slice()
可从已有的数组中返回选定元素并返回一个新数组
const arr = [1,2,3,4]
console.log( arr.slice(1) ) // [2,3,4]
splice()
从数组中添加/删除项目,然后返回被删除的项目
const arr = [1,2,3,4]
console.log( arr.splice(2,1) ) // [1,2,4]
sort()
用于对数组的元素的排序,在原数组上进行排序,不生成新数组
const arr = [3,2,1,4,5]
console.log( arr.sort() ) // [1,2,3,4,5]
tostring()
返回一个由所有数组元素组合而成的字符串
const arr = [1,2,3,4]
arr.toString() // 1,2,3,4
toLocaleString()
返回一个由所有数组元素组合而成的字符串
toLocaleString()会让Number类型三位一分隔
const arr = 1234
arr.toLocaleString() // ' 1,234 '
Array.from()
从一个类似数组或迭代对象中创建一个新的数组实例
console.log(Array.from(' foo ')) // ["f", "o", "o"]
数组去重
Array.from( new Set( [ 1,22,23,22,3,1 ] ) ) // [1, 22, 23, 3]