序号
|
方法
|
举例
|
是否改变当前数组
|
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)
|
是
|