javascript基本语法2 引用类型------数组

数组:

           在javascript中数组也是一种对象。

          特点:

                    “数组”即一组数据的集合。

                    js数组更加类似于java的容器。长度可变,元素类型也可以不同!

                   数组长度随时可以变,随时可以被修改

           常用方法:

                push:在尾部插入元素(返回新数组元素的个数),pop(返回一处的元素)从尾部移除一个元素

                shift:从头部以后粗一个元素(返回移除的元素),unshift:在头部插入元素(返回元素的个数)

                splice:第一个参数表示起始位置,第二个参数表示截取的个数,第三个参数表示参数以后追加的新元素个数(截取的方法),slice(a,b)(截取范围,左闭右开区间;返回截取的内容)

                concat , join,sort(正序),reverse(倒序排序是按照元素位置倒着排的)

   相关代码如下所示:


  

 var arr1=[1,2,1,2,43,54,2,34];
  var arr2=[3,34,23.5,23,54,65];
  
  var pushArr=arr1.push(1,3,65,23);//在尾部插入元素
  console.info("push数组为:"+arr1);
  console.info("push新数组元素个数:"+pushArr);//返回新数组元素的个数
  
   console.info("---------------------------------------------------");
  
  var popArr=arr1.pop();//在尾部一处一个元素,返回一处的元素
  console.info("pop()数组为:"+arr1);
  console.info("pop()移除元素为:"+pushArr);
  
   console.info("---------------------------------------------------");
  
  var shiftArr=arr1.shift();//移除头部的一个元素,返回移除元素
  console.info("shift()数组为:"+arr1);
  console.info("shift()移除元素为:"+shiftArr);
  
   console.info("---------------------------------------------------");
  
  var unshiftArr=arr1.unshift(1,2,43,54);//在头部插入多个元素,返回移除后的数组个数
  console.info("unshift()数组为:"+arr1);
  console.info("unshift()新数组元素个数:"+unshiftArr);
  
   console.info("---------------------------------------------------");
  
  var spliceArr=arr1.splice(2,3,3,4);//第一个参数表示起始位置,第二个参数表示截取的个数,从第三个元素开始都是在该截取地方添加的新元素数(截取的方法) 
   console.info("splice()数组为:"+arr1);
   console.info("splice()截取的元素:"+spliceArr);//返回截取的元素
   
    console.info("---------------------------------------------------");
   
   var sliceArr=arr2.slice(2,4);//截取范围,左闭右开区间;返回截取的内容,在这里截取第二个,第三个,不截取第四个
   console.info("slice()数组为:"+arr2);//结果  3,34,23.5,23,54,65
   console.info("slice()截取的元素:"+sliceArr);//返回截取的元素,结果:23.5,23
  
   console.info("---------------------------------------------------");
  
  var concatArr=arr1.concat(arr2);//合并粘连的操作,不操作数组本身
   console.info("concat()合并粘连后的数组:"+concatArr);
   
   console.info("---------------------------------------------------");
   
   var joinArr=arr1.join("--");//不操作数组本身,在每个元素之间加入内容
   console.info("join(),在每个元素之间加入内容后原数组:"+arr1);
   console.info("join(),在每个元素之间加入内容后新数组:"+joinArr);
   
   console.info("---------------------------------------------------");
   
   var sortArr=arr1.sort();//操作数组本身,排序
   console.info("sort()排序之后的结果:"+arr1);
   console.info("sort()排序之后返回的的结果"+sortArr);
   
   console.info("---------------------------------------------------");
   
  var reverseArr=arr1.reverse();//倒叙排序是按照元素位置排序的,操作数组本身
  console.info("reverse()倒叙排序后的结果为:"+arr1);
  console.info("reverse()倒序排序之后返回的的结果"+reverseArr);
  
  console.info("---------------------------------------------------");
  
  function sortCompare(value1,value2){
	  if(value1<value2){
		   return -1;
		  }else if(value1>value2){
		    return 1;
		  }else{
	       return 0;
		  }
	  }
  
   var sortArr=arr1.sort(sortCompare);//操作数组本身,排序
   console.info("sort(sortCompare)排序之后的结果:"+arr1);
   console.info("sort(sortCompare)排序之后返回的的结果"+sortArr);
   
   console.info("---------------------------------------------------");
  
   function reverseCompare(value1,value2){
	  if(value1<value2){
		   return -1;
		  }else if(value1>value2){
		    return 1;
		  }else{
	       return 0;
		  }
	  }
  var reverseArr=arr1.reverse(reverseCompare);//倒叙排序是按照元素位置排序的,操作数组本身
  console.info("reverse()倒叙排序后的结果为:"+arr1);
  console.info("reverse()倒序排序之后返回的的结果"+reverseArr);


 ECMAscript(javascript)数组中的新特性补充:

        位置方法:indexof():从0往后查找, lastIndexof():从后往前查找;

        迭代方法:

                         every:对数组的每个元素进行一个函数去运行,如果都返回的是true,则为true,如果有一为fasle,则返回fasle,

                        filter:filter对于数组的每一个元素进行一个函数的运行,给定函数去执行,把过滤后的结果返回

                       forEach:forEach循环遍历

                        some:some如果有一项返回true,则返回true,如果全部为fasle,则返回fasle

                        map:map对于数组的每一个元素进行一个函数运行, 可以经过函数执行完毕后把新的结果返回,结果将返回新数组

       缩小方法:

                      reduce:

                     reduceRight:



代码如下:


   

 
  var arr1=[32,12,554,21,23,54,23,65,23,65,12];
  
  //一个参数的时候传值,返回该值在数组中的索引位置
  //两个参数的时候,第二个参数表示的是起始位置,第一个参数查找该值的索引
   var index=arr1.indexOf(12);//返回1   index从0往后后找的
   var index1=arr1.indexOf(1,12);
   console.info(index);//1
   console.info(index1);
	
   console.info("------------------------------------------------");
   
   var lastindex=arr1.lastIndexOf(12);//从后往前查找
   console.info(index);//1 
	
   console.info("----------五个叠加方法------------------------");
   
   //every对数组的每个元素进行一个函数去运行,如果都返回的是true,则为true,如果有一为fasle,则返回fasle,
   var resultEvery=arr1.every(function(item,index,array){
	   console.info("item:  "+item+"        inedx:   "+index+"         array:    "+array);
	    return item>2;
	   });
    console.info("every()遍历返回的结果:"+resultEvery);//true
  
     console.info("------------------------------------------------");
	 
	 //filter对于数组的每一个元素进行一个函数的运行,给定函数去执行,把过滤后的结果返回
	 var resultFilter=arr1.filter(function(item,index,array){
	   console.info("item:  "+item+"        inedx:   "+index+"         array:    "+array);
	    return item>40;
	   });
	  console.info("every()遍历返回的结果:"+resultFilter);//554,54,65,65
  
     console.info("------------------------------------------------");
	 
	 //forEach循环遍历
	 var resultForEach=arr1.forEach(function(item,index,array){
		  console.info("item:  "+item+"        inedx:   "+index+"         array:    "+array);
		 });
  
   console.info("------------------------------------------------");
   
   //map对于数组的每一个元素进行一个函数运行, 可以经过函数执行完毕后把新的结果返回,结果将返回新数组
   var resultMap=arr1.map(function(item,index,array){
		  console.info("item:  "+item+"        inedx:   "+index+"         array:    "+array);
		  return item*5;
		 });
   console.info("经过map后返回的新数组:"+resultMap);		 

    console.info("------------------------------------------------");
	
	//some如果有一项返回true,则返回true,如果全部为fasle,则返回fasle
	   var resultSome=arr1.some(function(item,index,array){ 
	    return item>40;
	   });
    console.info("some()遍历返回的结果:"+resultSome);//true
	
	console.info("------------------reduce,reduceRight----------------------------");
	
	//参数分别是:前一个值,当前值,索引,array
	var resultReduce=arr1.reduce(function(pre,cur,index,array){//从左遍历
		return pre+cur;
		});
	console.info("reduce()返回的结果"+resultReduce);//所有相加

	//参数分别是:前一个值,当前值,索引,array
	var resultReduce=arr1.reduceRight(function(pre,cur,index,array){//从右遍历
		return pre+cur;
		});
	console.info("reduceRight()返回的结果"+resultReduce);//所有相加




       


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值