序号 | 方法 | 举例 | 是否改变当前数组 |
1 | instanceof 判断变量是否是数组对象 | console.log(arr instanceofArray);//true | 否 |
2 | join 将数组的元素组起一个字符串 | join(separator) //将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符 arr1 = [1,2,3,4,5]; result = arr1.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5" | 否 |
3 | push 往数组的最后添加一项 | //push:将参数添加到原数组末尾,并返回数组的长度 arr1 = [1,2,3,4,5]; result = arr1.push(6,7); //a:[1,2,3,4,5,6,7] b:7 console.log(result) | 是 |
4 | pop 弹出数组的最后一项 | //pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined arr1= [1,2,3,4,5]; result = arr1.pop(); //a:[1,2,3,4] b:5 console.log(result) // 5 | 是 |
5 | reverse 翻转数组 | // reverse:将数组反序 arr1 = [1,2,3,4,5,8,34]; result = arr1.reverse(); //[34,8,5,4,3,2,1] console.log(result) ; | 是 |
6 | sort 排序 -- 模拟sort的内部实现 | sort(); //即使是数组sort也是根据字符,从小到大排序 带参数的sort是如何实现的? 按字母的首字母ASCII码排序,小的在前,sort没有降序排列功能,arr.reverse();//排完序再反转,变成降序 arr.sort(function(x,y){return y-x;} );//数字降序 arr.sort(function(x,y){return x-y;} );//数字升序 | 是 |
7 | slice 从当前数组中截取一个新的数组,不会影响原来的数组 | slice(start,end):参数start从0开始,end从1开始 返回从原数组中指定开始下标到结束下标之间的项组成的新数组,但不包括结束位置的项 arr1 = [1,2,3,4,5]; result = arr1.slice(2,5); //[3,4,5] result = arr1.slice(2); //[3,4,5] 在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项; | 否 |
8 | splice 删除或替换当前数组的某些项目,影响原数组 返回的是删除的内容 | splice()//删除或替换当前数组的某些项目, splice(start,deleteCount,val1,val2,...): // 从start位置开始删除deleteCount项,并从该位置起插入val1,val2,... //在第一项前插入 var arr=[1,2,3,4] arr.splice(1,0,5); //替换arr1 = [1,2,3,4,5]; result = arr1.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4] //删除第一项result = arr1.splice(0,1); //同shift arr1.splice(0,0,-2,-1); result = arr1.length; //同unshift result = arr1.splice(arr1.length-1,1); //同pop //添加arr1.splice(arr1.length,0,6,7); | 是 |
9 | indexOf()、lastIndexOf() 获取数组中某项的位置,如果不存在,返回-1 | lastIndexOf()//从后开始检索 第二个参数传负数表示从倒数第几个开始检索 indexof(item,startindex)//第一个参数表示需要查找的元素,第二个参数表示开始检索的位置,不写第二个参数,表示从0开始检索 | 否 |
10 | concat() //把参数拼接到当前数组 | arr = arr.concat("xx","yy"); 数组合并concat //concat:返回一个新数组,是将参数添加到原数组中构成的 arr1 = [1,2,3,4,5]; result = arr1.concat(6,7); console.log(result)//[1,2,3,4,5,6,7] //该方法会展开参数中的一维数组 result = arr1.concat(6,7,[8,9,10]); result = arr1.concat(6,7,[8,9,10,[1,2,3]]);//1.2.3不会展开 | 否 |
11 | toString() //把数组转换成字符串,每一项用,分割 | var str=arr.toString(); | 否 |
12 | valueOf() //返回数组对象本身 | | 否 |
13 | filter 过滤数组 IE8以前不支持 | | |
14 | forEach 遍历数组 IE8以前不支持 | | |
15 | shift()//取出数组中的第一个元素,修改了原数组的length属性, | shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined var arr1 = [1,2,3,4,5]; var arr2 = [1,2,3,4,5]; var result = arr1.shift(); //arr1 [2,3,4,5] result:1 console.log(result) | 是 |
16 | unshift() //在数组最前面插入项,返回数组的长度 | //unshift:将参数添加到原数组开头,并返回数组的长度 arr1 = [1,2,3,4,5]; result = arr1.unshift(-2,-1); //arr1:[-2,-1,1,2,3,4,5] result:7 console.log(result) | 是 |