JS数组

 

目录

数组中添加元素  修改长度length  

使用字面量新建一个数组

 数组中的常用方法

遍历数组

foreach方法  遍历数组(IE8不兼容)

slice()从某个已有的数组汇返回指定的元素

splice()删除元素,并向数组中添加元素

数组的剩余方法


  • 数组也是一个对象(用来存储一些值的)
  • 数组使用索引(index)来查找
  • 数组的存储性能较好,常用来存储数据

数组中添加元素  修改长度length  

                        var arr = new Array();
			
			console.log(typeof arr);//object
			
			//添加元素
			arr[0] = 10;
			arr[2] = 33;
			console.log(arr);//10,,33
			//如果读取不存在的索引不会报错,返回undefined
			
			//获取数组的长度
			console.log(arr.length);//3
			//对于非连续的数组,获得最大的index+1
			
			//修改length 
			//如果修改的length小于原长度,多出来的会被删除,
			//如果修改的length大于原长度,多出的部分会空出来
			
			/*arr.length = 10;*/
			console.log(arr);
			
			//向数组的最后一位添加元素
			arr[arr.length] = 10;
			arr[arr.length] = 1;
			
			console.log(arr);

使用字面量新建一个数组

数组中的元素可以是任意的数据类型,可以是对象

			var arr = new Array();
			
			//使用字面量创建数组
			var arr = [];
			
			console.log(typeof arr);//object
			
			//创建时指定元素
			var arr1 = [1,3,4,5];
			var arr2 = new Array(10,20);
			console.log(arr1.length);
			console.log(arr2); 
			//数组中的元素可以是任意的数据类型
			arr = [10,"w",1,null,undefined,true];
			console.log(arr[3]);
			//对象
			var obj = {name:"houzi"};
			arr[arr.length] = obj;
			
			console.log(arr[6].name);
			
			//函数
			arr = [function(){},function(){}];
			console.log(arr);
			//数组
			arr = [[1,23,4],[12,45,6,3]];
			console.log(arr[0]);

 数组中的常用方法

push向数组末尾添加一个或多个元素,并且返回长度

			var arr = ["hozui","name"];
			
			//push
			arr.push("wind","end");
			console.log(arr);
			
			var result = arr.push("q","q");//返回新的数组的长度
			console.log("result = "+result);

pop删除并返回数组的最后一个元素

			var a=["a","b","c"];
			result = a.pop();
			
			console.log(a);
			console.log(result);//返回被删除的元素

unshift()向数组的开头添加一个或多个元素,插入元素后面元素的index会依次调整。

                        var a=["a","b","c"];
			
			var re = a.unshift("s");
			console.log(a);
			console.log(re);//4新的数组长度

shift()删除数组的第一个元素。并将被删除的元素作为返回值返回

                        var a=["a","b","c"];
			
			var re = a.shift("s");
			console.log(a);
			console.log(re);//a被删除的元素

遍历数组

			var a=["a","b","c","d"];
			for(var i = 0;i<a.length;i++){
				console.log(a[i]);
			}

foreach方法  遍历数组(IE8不兼容)

需要一个函数作为参数,回调函数,数组中有几个元素,函数就会执行几次每次执行时候,浏览器会将遍历到的元素以实参对的形式传递进来,我们可以定义形参,读取内容。

浏览器会传入三个参数,

  1. 正在遍历的元素
  2. 正在遍历元素的索引index
  3. 正在遍历的数组
			//foreach
			var a = ["shouzi","pangzi"];
			
			/*function fun (){
				 
			}*/
			//浏览器会在回调函数中传入三个参数。
			
			a.forEach(function (value,index,obj){
				console.log(index);//这种函数由我们创建不由我们调用---》回调函数。
			});

slice()从某个已有的数组汇返回指定的元素

splice()删除元素,并向数组中添加元素

			var a=["houzi","lizi","end"];
			
			//不会改变原数组。而是将截取到的元素,封装到新的数组中返回
			console.log(a.slice(0,1));//开始的index,结束的index
			console.log(a.slice(1));//截取从开始到结束的所有index
			
			//index传递一个负值---从后往前计算
			console.log(a.slice(2,-1));
			
			//splice 删除元素,并向数组中添加新元素
			//会改变原数组
			a.splice(0,2,"新元素");//第三个以及以后的元素,是添加的元素,自动插入开始位置index的前面
			console.log(a);

 去重数组中重复元素。

                        var a = [1,2,4,5,6,3,1,1,3,5];
			
			for(var i = 0;i<a.length;i++){
				for(var j = i+1;j<a.length;j++){
					if(a[i]==a[j]){
						a.splice(j,1);//删除了元素以后,后面的元素会自动补上,需要再比较一次。
						j--;//比较以后的元素。
					}
				}
			}
			console.log(a);

数组的剩余方法

contact连接两个或多个数组,返回新的数组。。不会对原数组产生影响。

			var a = ["猴子","儿子",":shs"];
			var b = ["杨","后者"];
			var c = ["s"];
			console.log(a.concat(b));
			var result = a.concat(b,c);
			console.log(result);//连接多个数组

join()将数组转化为字符串

可以传入一个字符串,字符串将会作为数组中元素的连接符。

			var a = ["猴子","儿子",":shs"];
			var b = ["杨","后者"];
			var c = ["s"];
			//传入一个字符串作为参数,作为数组元素中的连接符。
			var result = a.join("Hello!");
			
			console.log(typeof result);//String
			console.log(result);

reverse()反转字符串-----》(会直接修改原数组)

			var a = ["猴子","儿子",":shs"];
			var b = ["杨","后者"];
			var c = ["s"];
			
			var result = a.reverse();
			
			console.log(result);

sort() 对数组进行排序--》会影响原数组

按照Unicode编码排序,,对数字进行排序的时候也许会得到错误的结果

			var a = ["w","r","s",1];
			var b = ["a2","a1"];
			var c = [5,4,7,44];
			
			var result = a.sort();
			var result = b.sort();
			//添加一个回调函数
			//使用哪个元素调用不缺定,但是肯定a在b的前面。
			//返回1交换位置,-1不交换,0
			var result2 = c.sort(function(a,b){
				/*if(a>b){
					return 1;
				}else if(a<b){
					retunr -1;
				}else{
					return 0;//根据返回值决定元素位置。
				}*/
				return a-b;//升序
				return b-a;//降序
				
			});
			
			console.log(result2);
			

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值