javaScript_january_11

 发布日期:2019-01-19 09:18:13  阅读次数:阅读数:19  来源:

js学习

以后坚持一日一更,和大家分享我每天学习的成果及经验,让想要学习的小伙伴少走弯路。

今天学习了数组相关的知识:数组的元素的添加和删除、数组的排序、将对象转为数组、复制指定元素及位置、填充数组、数组转为字符串
一、数组元素的添加和删除
①pop()

pop()删除数组的最后一个元素,并且返回该元素,从后往前删除

var arr = [1,2,3];
			var arr1 = arr.pop();
			console.log(arr);//1,2 删除一个
			console.log(arr1);//3 返回删除的那个数
②shift()

shift()删除数组的第一个元素,并且返回该元素,从前往后删除

var  arr2 = arr.shift();
   		console.log(arr);//2 删掉了第一个
   		console.log(arr2);//1 返回删除的那个数
小结:

pop()和shift()的缺点就是一次只能删一个,因此需要配合for循环使用

例题:从前往后删3个从后往前删4个
var arr3 = ["a","b","c","a","d","b","s","g","t","r","s"];
			document.write(arr3);
			for(var i = 0;i<4;i++){
				var arr4 = arr3.pop();
				console.log(arr4);
				console.log(arr3);
			}
			for(var i = 0;i<3;i++){
				var arr5 = arr3.shift();
				console.log(arr5);
				console.log(arr3);
				document.write("<br />");
				document.write(arr3);
			}
③splice 添加、删除数组元素

删除原数组的一部分成员,并且可以在被删除的位置添加新成员 返回的是被删除的元素,
格式: splice(index,数量,添加的新元素)
index:规定从哪个开始删除或者添加,必须是数值类型(数组的下标)
数量:规定删除个数,如果是零,那就不删除 需要添加的元素,可以当做替换的元素

var arr10 = arr3.splice(0,0);//第二个参数为零,不执行删除操作
			console.log(arr10);
			console.log(arr3);
			var arr11 = arr3.splice(1,1);//第一个代表数组下标,第二个一代表删除的数量
			console.log(arr11);
			console.log(arr3);
			
			var st = [1,2,3,4,5,6,7,8,9,1,5,9];
			var st2 = st.splice(3,4,"*","*","*","*",);//如果删除零个,那就是在对应下标元素后添加新内容
			console.log(st);
			console.log(st.toString());
二、数组的排序
①reverse()

用于颠倒数组中元素的顺序,不做值的比较,返回改变后的数组

var aArray = [1,2,3];
			aArray.reverse();
			console.log(aArray);
			var arry = ["a","b","c"];
			arry.reverse();
			console.log(arry);
②sort()

不是按照大小去排序,是按照对应字符串的编码(Unicode)顺序去排列

var arr7 = [1,2,3,10,20,30];
			arr7.sort();
			console.log(arr7);
			var arr8 = ["yellow","red","black","blue"];
			arr8.sort();
			console.log(arr8);

如果按照其他的顺序去排列的话,要提供一个函数,函数中要提供两个参数,对这两个参数
去做比较,以参数a、b为例
a<b(从小到大) a在b的前面
a>b(从小到大) a在b的后面
a=b把数组内容颠倒过来,第一个变成最后一个,最后一个变成第一个

//使用函数来规定sort()的排列顺序
			var arr9 = [10,1,5,20,30];
			function mySort(a,b){//自定义函数,用来规定sort排列顺序
				return a-b;//从小到大排列
				//return b-a;//从大到小排列
			}
			arr9.sort(mySort);
			console.log(arr9);
三、将对象转为数组

Array.of()返回由所有参数值组成的数组
解决构造函数中参数不同,产生的差异

var arry = new Array(3);
			console.log(arry);
			var arry1 = Array.of(3,1,3);
			console.log(arry1);

Array.from()将两类对象转为真正的数组

var str = "123456789987";
			var str1 = Array.from(str);
			//console.log(str1);
			var obj = {0:"a",1:"b", 2:"c",'length':3};//长度加上
			var obj1 = Array.from(obj);
			console.log(obj1);
四、复制指定元素及位置`

copywithin(target,start,end)指定位置的成员复制到其他位置
参数1:必须,从该位置开始替换数据,如果为负数,表示倒数
参数2:可选,从该位置开始读取数据,默认为0,如果为负数,表示倒数
参数3:可选,到该位置前停止读取数据,默认是数组的长度,使用负数可以从数组的结尾处规定位置
浏览器兼容:谷歌45,edge12,火狐32,opera32,Safari9,ie不支持
不改变数组的长度,替换数组的元素

var arry6 = ["a","b","c","d","e"];
			var arry7 = arry6.copyWithin(1,2,4);//a,c,d,d,e;
			//截取下标为2和3的元素,然后替换在下标为1的元素之后
			console.log(arry6);
			console.log(arry7);
			
			var arry8 = ["a","b","c","d","e","f","g","h"];
			var arry9 = arry8.copyWithin(1,3,6);//a,d,e,f,e,f,g,h
			console.log(arry8);
			console.log(arry9);
五、填充数组

fill(arg1,arg2,arg3)填充数组
arg1:必需,要填充的数组的值
arg2:可选,填充的开始位置
arg3:可选,填充的结束位置,默认为整个数组,不包括选中的位置

var arr15 = ["a","b","c","d"];
			var arr16 = arr15.fill(1,1,3);
			console.log(arr16);//a,1,1,d
六、数组转为字符串

join(arg)数组转成字符串
arg:可选,指定要使用的分隔符,默认使用逗号作为分隔符

var arr18 = ["hello","world"];
			var arr19 = arr18.join();
			var arr20 = arr18.join("~");
			console.log(arr18);//["hello", "world"]
			console.log(arr19);//hello,world
			console.log(arr20);//hello~world
如果您有好的新闻与建议,欢迎点击文章投稿

    发表评论

    电子邮件地址不会被公开。

  • 内容

  • 网名