1. unshift() //在数组头部插入一个元素
eg:
let arr1 = [1,2,3,4,5]; arr1.unshift(0); console.log(arr1);//[0,1,2,3,4,5]2. shift() //移除并返回数组的第一个元素
eg:
let arr1 = [1,2,3,4,5]; arr1.shift(); console.log(arr1);// =>[2,3,4,5]3. push() //在数组尾部插入一个元素
eg:
let arr1 = [1,2,3,4,5]; arr1.push(6); console.log(arr1);// =>[1,2,3,4,5,6]4. pop() //移除并返回数组的最后一个元素
eg:
let arr1 = [1,2,3,4,5]; arr1.pop(); console.log(arr1);// =>[1,2,3,4]5. concat() //合并两个数组或衔接元素到数组,不会改变原数组,返回新的数组
eg:
let arr1 = [1,2,3,4,5]; let arr2 = [6,7,8,9]; let concatArr = arr1.concat(arr2); console.log(arr1);// =>[1,2,3,4,5] console.log(arr2);// =>[6,7,8,9] console.log(concatArr);// =>[1, 2, 3, 4, 5, 6, 7, 8, 9]6. every() //依次遍历数组,判断每个元素是否为true 有一个为false就为false
eg:
array.every(function(value,index.self){}) //value遍历的元素,index元素的索引,self数组本身 let arr1 = [1,2,3,4,5]; let arr2 = arr1.every(function(value,index,self){ return value>0 }) console.log(arr2);// =>true7. filter() //依次遍历数组,返回包含符合条件的新数组,可以当作数组过滤器使用
eg:
array.filter(function(value,index.self){}) let arr1 = [1,2,3,4,5]; let arr2 = arr1.filter((value,index,self)=>{ return value>3 }) console.log(arr2);// =>[4,5]8. map(value,index,self) //依次遍历并计算每个元素,返回计算好的元素的数组
此方法和filter很相似,他们区别是filter返回筛选后的新数组,map返回显示计算结果的数组
//和filter同样的算法,会得出以下结果
eg:
let arr1 = [1,2,3,4,5]; let arr2 = arr1.map((value,index,self)=>{ return value>3 }); console.log(arr2);// =>[false, false, false, true, true]他的通常用法类似下面这种:
let arr1 = [1,2,3,4,5]; let arr2 = arr1.map((value,index,self)=>{ return value*2 }); console.log(arr2);// =>[2,4,6,8,10]9. forEach(value,index,self) //依次遍历元素,执行指定的函数,无返回值
eg:
let arr1 = [1,2,3,4,5]; arr1.forEach((value,index,self)=>{ console.log(value+1);// =>依次输出2,3,4,5,6并不是一个数组 });10. indexOf(value,start) //在数组中查找匹配元素,存在返回元素从左往右第一次出现的位置,不存在返回-1
eg:
let arr1 = [1,2,3,4,5,3,4,5]; console.log(arr1.indexOf(3));// =>211. lastIndexOf(value,start) //在数组中反向查找匹配元素,存在返回元素所在的位置,不存在返回-1
即从右往左查找数组,第一次出现的位置即为返回值,但返回值的大小依然是从左往右数的
eg:
let arr1 = [1,2,3,4,5,3,4,5]; console.log(arr1.indexOf(3));// =>212. join(sparator ) //将数组中所有的元素按照分隔符拼接成一个字符串
eg:
let arr1 = [1,2,3,4,5]; console.log(arr1.join());// =>1,2,3,4,5 console.log(arr1.join('##'));// =>1##2##3##4##513. reserve() //反转数组中的顺序
eg:
let arr1 = [1,2,3,4,5]; console.log(arr1.reverse());// =>[5,4,3,2,1]14. slice(startIndex,endIndex) //返回数组的一部分,切割部分数组 -1代表最后一个元素
截取的元素不包含此处结尾序号的元素,即包含开始序号,但不包含结尾序号的元素,
返回一个新的数组,包含从startIndex到endIndex前一个元素的所有元素
eg:
let arr1 = [1,2,3,4,5]; console.log(arr1.slice(0,2));// =>[1,2] console.log(arr1.slice(0,4));// =>[1,2,3,4]15. splice(startIndex,deleteCount,value) //删除替换元素,改变原数组
startIndex为开始删除插入或替换的起始元素序号,deletecount删除的元素个数,替换的元素值
eg:
let arr1 = [1,2,3,4,5]; /* console.log(arr1.splice(0));// =>[1,2,3,4,5]表示从元素1开始全部删除,返回包含删除元素的新数组 console.log(arr1);// =>[]改变原数组,原数组为空 */ /* console.log(arr1.splice(0,0));// =>[]表示从元素1开始删除0个元素,即没有删除元素,新数组为空 console.log(arr1.splice(0,0,0));// =>[]同上 console.log(arr1);// =>[1,2,3,4,5]//原数组没有被删除任何元素*/ console.log(arr1.splice(2,0,2.5));// =>[1,2,3,4,5]由于没有删除元素所有新数组为空 console.log(arr1);// =>[1, 2, 2.5, 3, 4, 5]//原数组增加了一个元素16. toString() //将数组中所有元素通过一个英文逗号','拼接为一个字符串
eg:
let arr1 = [1,2,3,4,5]; console.log(arr1.toString());// =>1,2,3,4,517. sort(opt_orderFunc) //按一定的规则进行排序
参数:opt_orderFunc(v1,v2) {Function}:可选的排序规则函数。若省略,将按照元素的字母进行从小到大排序。
v1 :遍历时前面的元素。v2 :遍历时后面的元素。
排序规则:
比较v1和v2,返回一个数字来表示v1和v2的排序规则:
小于0 :v1小于v2,v1排在v2的前面。
等于0 :v1等于v2,v1排在v2的前面。
大于0 :v1大于v2,v1排在v2的后面。
eg:let arr1 = [1,4,11,6,14,2,5,3]; console.log(arr1.sort())// => [1, 11, 14, 2, 3, 4, 5, 6]按照字符来排 let arr2 = arr1.sort(function(v1,v2){ return v1-v2 }) console.log(arr2) // => [1, 2, 3, 4, 5, 6, 11, 14]从小到大排序18. 浅拷贝:Array类型是一种引用类型;当数组a复制给数组b时,对数组b进行元素修改,数组a也会发生修改。
eg:
let arr1 = [1,2,3,4,5]; let arr2 = arr1; arr2[2] = 6; console.log(arr2)// =>[1, 2, 6, 4, 5] console.log(arr1)// =>[1, 2, 6, 4, 5]19. 深拷贝:使用concat()方法,返回新的数组;防止浅度复制的情况发生,对数组b进行元素修改操作,数组a不发生变更。
eg:
let arr1 = [1,2,3,4,5]; let arr2 = arr1.concat(); arr2[2] = 6; console.log(arr2)// =>[1, 2, 6, 4, 5] console.log(arr1)// =>[1, 2, 3, 4, 5]20. 判断2个数组是否相等
说明:Array数组为引用类型,所以哪怕 []===[] 都会返回false,所以可通过数组toString()方法返回的字符串判断是否相等。
eg:
let arr1 = [1,2,3,4,5]; let arr2 = [1,2,3,4,5]; console.log(arr1===arr2)// =>false console.log(arr1.toString()===arr2.toString())// =>true