JS数组常用方法总结
1、给数组添加元素
arr.push( value1, value2, ..., valueN ); // 末尾添加元素,返回值:新数组长度 arr.unshift( value1, value2, ..., valueN ); // 开头添加元素,返回值:新数组长度
2、给数组删除元素
arr.pop(); // 末尾删除1个元素,返回值:被删的元素(如果数组为空,返回值 undefined) arr.shift(); // 开头删除1个元素,返回值:被删的元素(如果数组为空,返回值 undefined)
【小应用】:轮播图原理
arr.push( arr.shift() ); // 把一个数组里第一个元素拿到最后一位 arr.unshift( arr.pop() ); // 把一个数组里最后一个元素拿到第一位
3、任意位置 删除、添加多个元素
arr.splice( start, count, elem1, elem2, ..., elemN );
- 参数 start 指定删除/添加的起始位置,负数代表从右开始
- 参数 count 指定删除项目个数,如果count=0,代表不删除
- 参数 elem1, elem2, ..., elemN 指定添加的元素
删除:arr.splice(0,2); 代表从数组下标0开始删除2个元素,返回值:被删的元素
替换:arr.splice(0,2,'yy and zz'); 代表删除前2个元素且替换成'yy and zz',返回值:被删的元素
添加:arr.splice(1,0,'yy and zz'); 代表在下标1位置上添加1个元素'yy and zz',返回值:无(因为该方法只返回被删的元素)
【区分】:与 arr.slice() 方法区别
splice()方法修改原数组,slice()方法不修改原数组
4、截取数组
arr.slice(start,end); // 参数可正可负,负数代表从右截取,返回值:[start,end) 也就是说返回从start到end-1的数组
5、连接数组
arr1.concat(arr2,arr3); // 参数可以是value,也可以是arr,返回值:一个新数组
【区分】:与 arr1.push(arr2) 的区别 ↓
在push()方法中,arr2作为1个元素被放进arr1里面去了,而不是将两个数组进行连接。并且返回值是返回新数组长度,而不是新数组。
6、数组排序
arr.sort(); // 默认按元素的unicode编码值进行排序
【引申】:数字的排序
arr.sort(function(a,b){ return a-b; });
【再引申】
var arr = [ '345px' , '23px' , '10px' , '1000px' ]; arr.sort(function(a,b){ return parseInt(a)-parseInt(b); });
7、数组颠倒顺序排序
arr.reverce();
【引申】:字符串的颠倒顺序排序 ↓
例如 var = 'abcdef'; 想让它倒过来 'fedcba'
字符串方法里面没有颠倒顺序排序的方法,但可以将字符串先转成数组,排序后再转回字符串,处理如下:
str.split('').reverse().join('');