学习数组中常用的方法,我们需要按照四个维度去探讨
1、方法的作用
2、需要传哪些参数
3、是否有返回值,返回值是什么
4、通过此方法是否对原来数组产生了改变
数组常用方法:
1.向数组的末尾增加新的内容 ary.push(4);
var ary =[1,2,3]; ary.push(4); //[1,2,3,4];
ary.push(100,"张三,"李四") //可以传递多个参数
2.删除数组最后一项 ary.pop();
var ary =[1,2,3];
var res=ary.pop();// [1,2];
3.删除数组中的第一项ary.shift();
var ary =[1,2,3];
ary.shift();// [2,3];
4.向数组开头增加一项ary.unshift();
var ary =[1,2,3];
ary.unshift(100);// [100, 1, 2, 3];
5.增删改 全能操作 ary.splice();
1)从索引n开始,删除m个元素 ary.splice(n,m);
返回:把删除的内容以一个新的数组返回
原数组改变
2)删除末尾ary.splice(ary.length-1);
返回:删除掉的最后一项
原数组改变
3)从索引n开始,删除到末尾ary.splice(n);
返回:把删除的内容以一个新的数组返回
原数组改变
4)清空ary.splice(0);
删除数组每一项清空数组
返回:把未清空前的数组返回
原数组改变
5)复制数组ary.splice();
返回:一个空数组
原数组未改变
6)修改ary.splice(n,m,x.....);
从索引n开始,删除m个,用x替换删除部分,替换部分可以传入多个参数
返回:删除的内容
原数组改变
7)增加ary.splice(n,0,m....);
从索引n开始一个都不删除
返回:返回一个空数组
原数组改变:把m之后的参数添加到n的前面
8)再末尾增加ary.splice(ary.length,0,x....);
向数组末尾添加x及之后的参数
返回:空数组
原数组改变
关于数组的截取和拼接
6.slice
1)实现数组的截取,在原来的数组中截取某一部分ary.slice(n,m);
返回:从索引n开始到索引m处(不包含m)以一个新的数组返回
原来数组不变
2)实现克隆ary.slice();
7.concat
把两个数组拼接到一起,原来的数组不改变ary.concat(x,y,z);返回一个新的数组
8.把数组转化为字符串ary.toString();
返回:把原数组转化为字符串
原数组不变
9.join:按照一个分隔符,把数组中的每一项拼接成一个字符串ary.join("+");
返回:A+B+C+D 格式字符串
var ary = [12,23,45,65];
eval(ary.join("+"));
原数组不变
数组的排序和排列
10.ary.reverse();
返回:倒过来排序的数组
原数组亦变成倒序
11. sort:给数组进行排序 ary.sort();
这样只能处理10以内的数组进行排序,因为它是按照unicode编码的值进行排序的
ary.sort(function(a,b){ // 由小到大排序 b-a为从大到小排序
return a- b;
});
5、只有在标准浏览器中兼容的方法,在ie678下不兼容的
12/13. indexOf / lastIndexOf(字符串中也是有这两个方法,但是字符串的这两个方法兼容所有的浏览器,而数组的这两个方法是不兼容的)
当前内容在数组中第一次/或者最后一次出现位置的索引,如果数组中没有出现这一项的结果是-1,如果有这一项,索引是几就返回几
14.15. forEach/map都是用来遍历数组中的每一项的
ary.forEach(function(item,index){
console.log(item,index);
});
ary.map(function(item,index){
return item*10;
});
更多的数组方法
console.dir(Array.prototype);