珠峰培训

数组常用方法

作者:tx

2016-07-25 22:11:23

198

push
1 向数组的末尾添加一项
2 需要被添加的值,添加多项的时候也用","隔开
3 返回值数组的新长度
4 原有数组改变

     var ary = [1,2,3];         
var res = ary.push(4);
console.log(res); //4
console.log(ary); //[1,2,3,4]

unshift
1 向数组的开头添加一项
2 需要被添加的项目,如果是多个用逗号分隔
3 数组新长度
4 原有数组改变

var ary = [1,2,3]; 
var res = ary.unshift(0);
console.log(res); //4
console.log(ary); //[0,1,2,3]

pop
1 删除数组的末尾项目
2 不用参数
3 删除的最后一项
4 原有数组改变

var ary =[1,2,3];
var res = ary.pop();
console.log(res); //3
console.log(ary); // [1,2]

shift
1 删除数组的开头项
2 没有参数
3 返回值删除的开头项
4 原有数组改变

var ary = [1,2,3]; 
var res = ary.shift();
console.log(res); //1
console.log(ary); //[2,3]

splice

1 删除数组的具体项
2 splice(n) 从索引n开始删除到末尾
2 splice(n,m) 从索引n开始删除m个,包含n
2 splice(n,m,x) 从索引n开始删除m个,把删除的位置用x替换,如果想在删除位置添加多个,那么就继续在第三个参数x后继续加参数就可以 splice(n,m,x,y)
3 删除的项目组成一个新数组返回
4 原有数组改变

   splice(0,1); //shift
splice(0,0,x); //unshift
splice(ary.length-1,1); //pop
splice(ary.length,0,x); //push

concat
1 拼接数组
2 要被拼接的数组
3 返回值至已经拼接好的数组
4 原有数组都不变

var ary1 = [1];
var ary2 = [2];
var res = ary1.concat(ary2); //[1,2]
console.log(res); //[1,2]

join
1 把数组按照指定的分隔符拼接成字符串
2 参数就是那个指定的分隔符
3 返回值是已经拼接好的字符串
4 原有数组不变
ps: 如果没有参数默认使用逗号分隔符
eval : 可以把字符串当作js表达式来运行,有去掉引号的作用

var ary = [1,2,3];
var res = ary.join('+');
console.log(res); //"1+2+3"
eval(res); //6

reverse
1 把数组倒序
2 没有参数
3 返回值是已经倒序后原有数组
4 原有数组顺序改变

var ary = [1,2,3];
var res = ary.reverse();
console.log(res); //[3,2,1]

sort
1按照指定的规则排序数组
2 参数就是代表规则的函数
sort(function (a,b){ return a-b; }); 升序
sort(function (a,b){return b-a; }); 降序
ps: 匿名函数参数执行的次数和数组有多少项有关系
3 排好序原有数组
4 原有数组顺序改变

var ary = [3,2,1,5,4];
var res = ary.sort(function (a,b){ return a-b });
console.log(res); //[1,2,3,4,5]
var res = ary.sort(function (a,b){ return b-a });
console.log(res); //[5,4,3,2,1]

indexOf
1 当前项在数组中出现的索引位置
2 要获取索引位置的项
3在数组中出现的索引位置,如果没有在数组中出现过返回-1
4 原有数组不变

lastIndexOf
1 当前项在数组中最后一次出现的索引位置
2 要获取索引位置的项
3 在数组中最后一次出现的索引位置,如果没有在数组中出现过返回-1
4 原有数组不变

var ary = ['x','y','z'];
var res = ary.indexOf('y');
console.log(res); // 1
var res = ary.indexOf('a');
console.log(res); //-1

forEach
1 循环遍历数组中的每一项
2 参数是匿名函数,匿名函数中有三个形参,分别在每次执行的时候代表数组项,对应项目的索引,原有数组
3 返回值是undefined
4 原有数组不变

var ary = ['x','y','z'];
var res = ary.forEach(function (item,index,originAry){
console.log(item,index,originAry);
// 'x',0,['x','y','z']
// 'y',1,['x','y','z']
// 'z',2,['x','y','z']
});
console.log(res); //undefined

map
1 循环遍历数组的每一项
2 参数也是一个匿名函数
3返回值就是匿名函数中return的值然后重新组成一个新的数组,并且在这个匿名函数中return的值可以由遍历数组时候的每一个参数组成。
4 原有数组不变

var ary = ['x','y','z'];
var res = ary.forEach(function (item,index,originAry){
return item+index
});
console.log(res); //['x0','y1','z2']

数组的常用方法中,其中最后的indexO,lastIndexOf,forEach,map在IE的低版本浏览器中是存在兼容性问题的。数组是js非常重要的一种数据类型,在日常的开发中使用较多,所以对数组的常用方法的作用和返回值等做到熟记于心,才能在使用的过程中做到游刃有余。