序号
| 方法
| 举例
| 是否改变当前数组
|
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;} );//数字升序
//按每项长度来排列 // arr.sort(function(a,b){ // // return a.length-b.length; // // })//从小到大 // // console.log(arr);
| 是
|
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)
| 是
|