由于它经常使用,并且面试必问es6
pop 删除并返回数组最后一个元素
push 从末尾给数组添加元素,返回新数组length值
reverse 颠倒数组元素,返回颠倒后的数组
shift 删除并返回第一个元素值
sort 数组排序
splice 删除指定位置开始指定长度的元素,返回被删除的项目。
unshift 向数组开头添加多个元素,返回新数组长度
concat 返回合并后数组的副本
join 返回一个经过链接符链接数组元素的字符串
slice 返回选中元素的新数组
toString 返回字符串等同于join()
for (var i = arr.length - 1; i >= 0; i--){ if(arr[i] === 1){ arr.splice(i,1) } }
forEach、map、filter、every、some、reduce、reduceRight
var a = ['1', 20, 30]; a.forEach((item, index, a)=>{ ++item }) // 不会改变a值 a.forEach((item, index)=>{ a[index] = ++item }) // 改变a值
var a = ['1', 20, 30]; var b = a.map((item, index, a)=>{ return ++item // 若是没有return会输出undefined }) // [2,22,32]
var a = ['1', 20, 30]; console.log(a.filter((item)=>{ return typeof item === 'string' })) //['1']
var a = ['1', 20, 30]; console.log(a.every((item)=>{ return typeof item === 'string' })) // false
var a = ['1', 20, 30]; console.log(a.some((item)=>{ return typeof item === 'string' })) // true
var a = ['1', 20, 30]; var total = a.reduce(function(first, second) { return first + second; }, 2); console.log(total) // 212030(((第二个参数2+'1')+20)+30) var total = a.reduceRight(function(first, second) { return first + second; }, 2); console.log(total) // 521(((第二个参数2+30)+20)+'1')
for (let i = 0; i < arr.length; i++){ if(arr[i] === 1){ delete arr[i] } } // 删除对应元素后,对应元素被置换为undefined,可是对应的i值(i in arr为false),直接复制arr[i]=undefined时i in arr 为 true
let arr = [1,2,3,1,2,3,4] let set = new Set(arr) arr = [...set]
Array.from(),Array.of(),Array.prototype.copyWithin(),includes()