你的位置:首页 > Java教程

[Java教程]混淆篇之数组的常用方法总结


 

 

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