javascript数组的常用方法

1 数组的方法

(1)、栈结构:

​ 结构:从同一头进,从同一头出

​ 特点:先进先出;

1.push(参数1, 参数2…)

​ 格式:数组.push(参数1, 参数2…);

​ 功能:将新元素添加到数组的尾部。

​ 返回值:插完元素以后数组的长度(注意:返回值是长度即arr.length)。

push()方法是再数组尾部添加数组元素,一次可以添加单个元素也可以是索格元素,,如果添加的元素是数组,则仅将数组对象的引用添加为原来数组的一个元素,而不是将所有元素添加至其中。元素可是是一个,也可以是多个Javascript对象,使用“ ,” 分隔。

代码举例:

var arr = ["北京", "上海", "广州"];var res = arr.push("深圳", "天津", "成都");alert(arr);alert(res); 

2. pop()

​ 格式:数组.pop()

​ 参数:没有参数

​ 返回值:在数组中取下的那个元素作为返回值返回。

​ 功能:从数组末尾取下一个元素,(即相当于在数组末尾删除了一个元素)

【注】pop()方法通常结合push()方法一起使用,实现类似的堆栈功能。

代码举例:

var arr = ["北京", "上海", "广州"];var res = arr.pop();alert(res);alert(arr);

(2)、队列结构

​ 结构:从尾进,从头部出

​ 特点:先进先出

3.shift()

​ 格式:数组.shift()

​ 参数:没有参数

​ 功能:从数组的头部取下一个元素

​ 返回值:取下数组头部的一个元素作为返回值返回(同样的取下后的元素相当于在原数组中删除了)

代码举例:

var arr = ["唐朝", "元朝", "清朝"];var res = arr.shift();alert(res);alert(arr); 

4.unshift()

​ 格式:数组.unshift(参数1, 参数2…)

​ 功能:在数组的头部插入元素

​ 返回值:插完元素以后数组的长度(注意:返回值是长度即arr.length)

代码举例:

      var arr = ["唐朝", "元朝", "清朝"];var res = arr.unshift("隋朝", "商汤");alert(res);alert(arr);

5.concat()

​ 格式:数组.concat(数组,数据,…);

​ 功能:拷贝原数组,生成新数组。

​ 返回值:合并成的新数组,原数组不会改变。

【注】concat()方法可以将多个数组连接在一起形成新的数组,其中括号内的元素可以是数组,也可以是单个数组的元素,或者是其他的JavaScript对象。

代码举例:

 var arr1 = [10, 20, 30, 40];var arr2 = arr1.concat();

​      arr2.push(50, 60);alert(arr1); //结果:10,20,30,40alert(arr2); //结果:10,20,30,40,50,60

6.slice()

​ 格式:数组.slice(start,end)//注意:在获取元素的时候无法获取end出的元素,在数学上的概念上来讲,它的取值范围就是左开右闭。

​ 功能:可以基于当前数组获取指定区域元素[star,end]

​ 返回值:返回一个由截取元素组成的新数组,原数组不会发生任何改变。

代码举例:

     var arr=[10,20,30,40,50,60];var newArr=arr.slice(1,4);alert(newArr);alert(arr);

7.splice()

​ 格式:arr.splice(start,length,数据1,数据2,。。。)

​ 功能:从一个数组中移除一个或者多个元素。剩下的元素组成一个数组,移除的元素组成另外一个数组并返回它的引用。同时,可以在原数组在移除的位置插入一个或者多个元素,达到修改替换数组元素的目的,这个操作效果通常称为接合。(增加、删除、 修改)

​ 参数:start:开启截取的位置

​ length:截取元素的长度

​ 第三个参数开始,在原数组中的start位置插入元素。

代码举例:

	//增加功能:
     var arr=[10,20,30,40,50];var res=arr.splice(2,0,"hello","world");alert(arr);alert(res);
	//删除功能:var arr=[10,20,30,40,50];var res=arr.splice(2,2);alert(arr);alert(res);//修改功能:

 		var arr=[10,20,30,40,50];var res=arr.splice(2,2,"hello","world");alert(arr);alert(res);

8.join()

​ 格式:数组.join(字符串);

​ 功能:将数组中的元素,用传好的拼接符拼接成一个字符串。

​ 返回值:拼接好的字符串;不会修改原数组。

代码举例:

      var arr=[10,20,30];var str=arr.join("==");alert(str);alert(arr);

9、reverse()

​ 格式:数组.reverse();

​ 功能:将数组逆序

代码举例:

      var arr=[10,20,30,40];

​        arr.reverse();alert(arr);

10、sort()

​ 格式:数组.sort([sortfunction]);

​ 功能:对数组排序

​ 参数:sortfunction:可选项,用来确定元素循序的函数的名称,如果这个参数被省略,那么元素将会按照ASCII码进行升序排序。

​ sortfunction是一个双参函数,它必须返回,下列值之一。

​ 负值:表示传给sortfunction两个实参中,第一个的值比第二个值小

​ 零:表示传给sortfunction的两个参数相等

​ 正值:表示传给sortfunction两个实参中,第一个的值比第二个大。

代码举例:

      var arr=[10,15,5,25,30,1];

​        arr.sort()alert(arr);//输出结构为1,10,15,25,30,5  这里默认是使用ASCII码排序。

​        

​        var arr=[10,15,5,25,30,1];

​        arr.sort(function(value1,value2){return value1>value2;})//结果1,5,10,15,25,30 即从小到大排序如果要从大到小排序,只需要让value1<value2即可alert(arr);

11. toString()

​ 格式 :数组.toString([radix]);

​ 功能:将数组表示为字符串,各个元素按顺序排列组合成为字符串返回。这个方法是从Object对象继承而来,通常使用在全部输出数组数据的场合,数组中的

​ 所有元素按顺序组成一个字符串

​ 参数:radix为可选参数,表示进制。当对象是数字对象是,该参数起作用。

代码举例:

      var name=["Peter","Vicky","Luwang","Huawli"]

​         name.toString();alert(name);//结果为 Peter,Vicky,Luwang,Huawli

2 有关数组的其他应用:

	//删除数组var name=Array("莉莉","洋洋","张三","李四");delete name[0];//使用delete 精确删除数组的元素;//获取数组的长度var count=name.length;/*用length可以得知数组的长度,通常用在数组的遍历上。*/

操作数组元素总结:

删除:delete pop shift

添加:push unshift

修改:splice slice

3 ES5中新增数组的方法

1.indexof()

​ 格式:数组.index(item, start);

​ 参数: item 任意的数据;

​ start 下标 查找的起始位置(可以不传入,默认是0)

​ 功能:在数组中查找第一次出现item元素下标,从start开始去查找

​ 返回值: -1 没有查找到 >=0 查找到的元素的下标。

代码:

var arr = [10, 20, 30, 40, 50, 20, 30];var index = arr.indexOf(120, 2);alert(index);

2.forEach ()数组的遍历

​ forEach 是 ES5 中操作数组的一种方法,主要功能是遍历数组,事实上for 循环的加强版,该语句需要一个回调函数,作为参数。回调函数的形参,依次为,value:遍历的数组内容;index:对应的数组索引,array:数组本身。

代码:

var arr = [10, 20, 30, 40, 50];

​       arr.forEach(function(item, index, arr){/* 

​          item当前遍历到的元素

​          index当前遍历到元素的下标

​          arr数组本身

​         */

​         document.write(item + ", " + index + ", " + arr + "<br/>");});

3.map()映射

​ 功能:根据条件把原来的数组变成一个新的数组
代码:

	   var arr = [10, 20, 30, 40, 50];var newArr = arr.map(function(item, index, arr){//遍历要做的事情 映射关系return item * 1.3;//每一个映射要反应的关系});alert(newArr);alert(arr);

4.filter()

​ 功能:根据条件对原数组进行过滤,不该变原来的数组。

代码:

var arr = [10, 20, 30, 40, 50];var newArr = arr.filter(function(item, index, arr){//过滤的条件return item > 20;//过滤数组中大于20的数});alert(newArr);alert(arr);

5.some()

​ 功能:在数组中查找是否有符合条件的元素,有返回true,没有返回false。

​ 短路操作:只要找到符合条件的元素,后面的循环就停止了。
代码:

    var arr = [10, 20, 30, 40, 50];var res = arr.some(function(item, index, arr){//过滤的条件return item > 20;});alert(res);alert(arr); 

6. every ()

​ 功能:在数组中查找每一个元素是否有符合条件,符合返回true,不符合返回false。

​ 短路操作:只要找到不符合条件的元素,后面的循环就停止了。

代码:

    var arr = [10, 20, 30, 40, 50];var res = arr.every(function(item, index, arr){alert(item);//过滤的条件return item < 30;});alert(res);alert(arr);

7.reduce 归并(累加器)

​ 通常用来做数组的累加,用prev + next,对下一元素进行归并

​ prev 第一次是(即初始值)下标为0的元素,第二次开始 上一次遍历后的返回值;

​ next 从下标1开始,当前遍历到的元素

​ arr数组本身

代码举例:

var arr = [10, 20, 30, 40, 50];var res = arr.reduce(function(prev, next, index, arr){alert(prev + ", " + next);return prev + next;});alert(res);

运行上面的代码我们知道,

第一次结果是10,20(即初始值为10,下一个元素为20)

第二次结果是30,30(把10和20归并后值为30,下一个元素为30)

第三次结果是60,40(30和30归并后值为60,下一个元素为40)

第四次结果是100,50(60和40归并后值为100,下一个元素为50)

第五次结果是150(即100和50归并后的值)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值