JavaScript常用数组方法(增,删,改,截,拼,复,排,转)

本文深入讲解了JavaScript数组的各种操作方法,包括增删改查、排序、拼接等实用技巧,并通过示例代码详细展示了每种方法的应用场景和注意事项。

数组Arr的增,删,改,截,拼,复,排,转

			//1.arr.splice(start,length,元素1,元素2,元素3...)改变原数组,第二个长度代表返回数组的长度,截取从start开始length个元素从arr中提出。
			var arr = [1,2,3,4];
			var a=arr.splice(1,2,[1,2,3,4],5)
			console.log(a);//2,3
			console.log(arr);//1,[1,2,3,4],5,4
			alert(arr.length);//4

		   var arr = [1,2,3,4];
		   var a=arr.splice(1,0,[1,2,3,4],5)
		   console.log(a);新数组,长度为0
		   console.log(arr);1,【1,2,3,4】,5,2,3,4
		   alert(arr.length);6
				
			
			//2arr.slice(start,end)截取元素不改变原数组
			var arr = [1,2,3,4];
			console.log(arr.slice(2));//Array [ 3, 4 ]
			alert(arr);//1,2,3,4
			
			
			//3.arr.push(元素),在数组最后添加元素,改变原数组
			var arr = [1,2,3,4];
			arr.push(1,[1,2,3],2);
			console.log(arr);//Array(7) [ 1, 2, 3, 4, 1, (3) […], 2 ]
			alert(arr.length);//7
			
			
			//4.arr.concat(元素)拼接数组,在末尾加新元素,不改变原数组,会分解一维数组
			var arr = [1,2,3,4];
			arr.concat(1,2,4,[1,2,3],5);
			console.log(arr.concat(1,2,4,[1,2,3],5));//Array(11) [ 1, 2, 3, 4, 1, 2, 4, 1, 2, 3,5]
			alert(arr.length);//4
			
			
			
			//5.arr.concat(元素),返回值是新数组,去除一位数组括号
			var arr = [1,2,3,4];
			alert(arr.concat(1,2,3,[1,2,3],5).length);//11
			
			//6.arr.reverse()数组反转
			var arr = ['how','are','you'];
			arr.reverse();
			alert(arr);//you,are,how
			
			
			//7.arr.sort()数组排序
			var arr = [100,4,2,3,200];
			alert(arr.sort());//100,2,200,3,4
			
			
			//8数组排序,从大到小
			var arr = [100,4,2,3,200];
			alert(arr.sort(function(a,b){return b-a;}));
			
			
			//9arr.join(),不改变原数组
			var arr = [1,2,3,4];
			console.log(arr.join('&'));//1&2&3&4
			alert(arr);//1,2,3,4
			
			
			//10.arr.toString('分隔符'),用分隔符将数组转化为字符串,不写默认用逗号分隔
			var arr = [1,2,3,4];
			console.log(arr.toString());//1,2,3,4
			
			
			//冒泡排序,从下标为0开始比较,两两比较,和下一个比,如果j>j+1,交换位置
			var arr=[9,-33,999,43,23];
			function dubbleSortFromSmallToBig(arr){
				for(i=0;i<arr.length-1;i++){
					for(j=0;j<arr.length-i;j++){
						if(arr[j]>arr[j+1]){
							var t=arr[j];
							arr[j]=arr[j+1];
							arr[j+1]=t;
						}
					
					}
					
				}
			return arr;
				
				
			}
			var a=dubbleSortFromSmallToBig(arr);
			console.log(a);//Array(5) [ -33, 9, 23, 43, 999 ]


			//选择排序,从下标为0开始,与剩下所有进行比较,如果i>j交换位置
			var arr=[9,-33,999,43,23];
			console.log(a);
			var arr=[9,-33,999,43,23];
			function selectionSortSmallToBig(arr){//封装函数
				
				for(var i=0;i<arr.length-1;i++){//第一层循环控制比较次数
					for(var j=i+1;j<arr.length;j++){//i与剩下所有比较选最大的放最后
						
						if(arr[i]>arr[j]){//下标为0余=与后面i+1下标比较
							var t=arr[i];//交换
							arr[i]=arr[j];
							arr[j]=t;
						}
					}
				}
				
				return arr;//将数组给返回值
				
			}
			var a=selectionSortSmallToBig(arr);//将返回值该变量a
			console.log(a);//输出新数组


			//九、歌咏比赛,有10个评委,有5个选手,求出每一个选手的平均得分(去掉一个最高分和一个最低分)。(10分)要求:利用数组、有参有返回的函数
			var arr1=[];
			var arr2=[];
			var arr3=[];
			var arr4=[];
			var arr5=[];
			for(i=0;i<10;i++){
				arr1.push(Math.random()*10);
				arr2.push(Math.random()*10);
				arr3.push(Math.random()*10);
				arr4.push(Math.random()*10);
				arr5.push(Math.random()*10);
			}
			
			console.log(arr1,arr2,arr3,arr4,arr5);
			//排序,最大值在最后,最小值第一个,方便数组删除
			function dubbleSortFromSmallToBig(arr){
				for(i=0;i<arr.length-1;i++){
					for(j=0;j<arr.length-i;j++){
						if(arr[j]>arr[j+1]){
							var t=arr[j];
							arr[j]=arr[j+1];
							arr[j+1]=t;
						}
					}
				}
			return arr;
			}
			var a=dubbleSortFromSmallToBig(arr1);
			var b=dubbleSortFromSmallToBig(arr2);
			var c=dubbleSortFromSmallToBig(arr3);
			var d=dubbleSortFromSmallToBig(arr4);
			var e=dubbleSortFromSmallToBig(arr5);
			console.log(a,b,c,d,e);
			
//			console.log(Math.max.apply(null,arr));//最大值
//			console.log(Math.min.apply(null,arr));//最小值
			arr1.shift();//删除第一个
			arr2.shift();//删除第一个
			arr3.shift();//删除第一个
			arr4.shift();//删除第一个
			arr5.shift();//删除第一个
			
			arr1.pop();//删除最后一个
			arr2.pop();//删除最后一个
			arr3.pop();//删除最后一个
			arr4.pop();//删除最后一个
			arr5.pop();//删除最后一个
			
			console.log(arr1,arr2,arr3,arr4,arr5)
			
			var avg1=0;
			var avg2=0;
			var avg3=0;
			var avg4=0;
			var avg5=0;
			function sumScore1(arr){
				var sum1=0;
				
				for(i=0;i<8;i++){
					sum1+=arr1[i];
					
				}
				avg1=sum1/8;
			
			}
			function sumScore2(arr){
				var sum1=0;
				
				for(i=0;i<8;i++){
					sum1+=arr2[i];
					
				}
				avg2=sum1/8;
			
			}
			
			function sumScore3(arr){
				var sum1=0;
				
				for(i=0;i<8;i++){
					sum1+=arr3[i];
					
				}
				avg3=sum1/8;
			
			}
			
			function sumScore4(arr){
				var sum1=0;
				
				for(i=0;i<8;i++){
					sum1+=arr4[i];
					
				}
				avg4=sum1/8;
			
			}
			function sumScore5(arr){
				var sum1=0;
				
				for(i=0;i<8;i++){
					sum1+=arr5[i];
					
				}
				avg5=sum1/8;
			
			}
			
				
			sumScore1(arr1);
			sumScore2(arr2);
			sumScore3(arr3);
			sumScore4(arr4);
			sumScore5(arr5);
			
			console.log('第一个选手平均分是:'+avg1);
			console.log('第二个选手平均分是:'+avg2);
			console.log('第三个选手平均分是:'+avg3);
			console.log('第四个选手平均分是:'+avg4);
			console.log('第五个选手平均分是:'+avg5);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值