首页 > 代码库 > 数组方法知多少?

数组方法知多少?

一、什么是数组?

  数组是用来保存多条数据,和其他语言的数组不一样,js中的数组可以保存任何类型的数据;

如:var ary=[];

  var ary=[1,2,3,4,5,6];

  var ary=[‘a‘,‘b‘,‘c‘];

  var ary=[{n:1,m:2},{n:1,m:2},{n:1,m:2}];

  var ary=[function a1(){},function a2(){}];

二、如何创建数组?

1、使用Array构造函数

  如:var ary=new Array();

    ary[0]=1; ary[1]=2;        创建一个空数组,然后逐项赋值

    var ary=new Array(10);       创建一个数组,并指定数组的长度

    var ary=new Array(1,2,3,4,5);   创建一个数组,并指定数组的内容

2、使用数组字面量表示法

  var ary=[];

  var ary=[1,2,3,4,5,6];

  var ary=[‘a‘,‘b‘,‘c‘]

  var ary=[{n:1,m:2},{n:1,m:2},{n:1,m:2}];

  var ary=[function a1(){},function a2(){}];

三、数组的基本属性

  长度:ary.length

  数值:ary[i] 数组的索引是从0开始的

四、数组一共有12种方法:

  1、contact

  2、push

  3、pop

  4、unshift

  5、shift

  6、slice

  7、splice

  8、join

  9、sort

  10、reverse

  11、toString

  12、indexof

五、数组的这些方法的特点:

1、concat();  克隆数组、数组连接

  参数:参数个数不固定、参数类型不固定;不传参数时为克隆新数组

  结果:返回新数组

  原数组是否改变:不改变

2、slice(n,m);  基于当前数组获取制定区域元素,并创建一个新数组

  参数:两个参数、数字类型,代表从索引为n处开始,取到索引为m(不包括m);

  结果:返回取出来的新数组

  原有数组是否改变:不改变

3、splice(m,n); splice(m,m,x);  对数组进行插入,替换,删除操作 

【删除】  

  参数:两个参数、数字类型;splice(m,n); 代表从索引n开始,移除m个元素

  结果:返回移除的元素数组

  原有数组是否改变:改变

【替换】

  参数:三个参数、前两个数字类型,第三个不确定。splice(m,n,x);代表从索引n开始,移除m个元素,并将新增加的x元素添加到这个位置。

  结果:返回移除的数组元素

  原数组是否改变:改变

【插入】

  参数:三个参数,前两个是数字类型,中间为0,第三个不确定。splice(m,0,x); 代表从索引m开始,移除0个元素,将新增加的x元素添加到这个位置。

  结果:返回空数组(没有移除任何元素)

  原数组是否改变:改变

4、push(); 在指定的数组末尾添加一个元素

  参数:个数不定,数据类型不定,参数为新添加的元素

  结果:最后添加的元素

  原数组是否改变:改变

5、pop(); 删除指定数组最后一个元素

  参数:无

  结果:返回移除的元素

  原数组是否改变:改变

6、unshift(); 在指定数组前面添加元素

  参数:个数不定,数据类型不定,参数为新添加的元素

  结果:返回新增加后数组里面元素的个数(新数组的长度)

  原数组是否改变:改变

7、shift(); 删除数组第一个元素

  参数:无

  结果:返回移除的元素

  原数组是否改变:改变

8、join();给数组添加分隔符

  参数:一个参数,字符串类型

  结果:返回用分隔符串起来的字符串

  原数组是否改变:不改变

9、sort();对数组进行从小到大排列顺序(只对十以内的数字有效)

  对所有数字排列:ary.sort(function(ni,n2){

    return n1-n2;

  });

  参数:无

  结果:返回排序后的新数组

  原数组是否改变:改变

10、reverse();对数组进行倒序排列

  参数:无

  结果:返回排序后的新数组

  原数组是否改变:改变

11、toString(); 转化为字符串

  参数:无

  结果:返回转化后的字符串数据

  原数组是否改变:不改变

12、indexOf(); 用来检测某元素是否存在于数组中,存在返回此元素的索引,不存在返回-1;

  参数:要检测的元素;参数不定,数据类型不定

  此方法存在兼容性

数组方法知多少?