js-数组

一.什么是数组

就是将多个数据一起存放

二.怎样创建数组

<script type="text/javascript">
			// 第一种,比较麻烦的
			var color= new Array();
			color[0] = 'red';
			color[1] = 'black';
			color[2] = 'yellow';
			color[3] = 'blue';
			color[4] = 'green';
			console.log(color);						// ["red", "black", "yellow", "blue", "green"]
		
			// 第二种,创建数组并初始化
			var name = new Array('张三','李四','小明','何海杰')
			console.log(name);                     // 张三,李四,小明,何海杰
			
			//第三种,我比较喜欢的
			var computer = ['惠普','拯救者','雷神','联想']
			console.log(computer);					//["惠普", "拯救者", "雷神", "联想"]
		</script>

三.数组单个元素的访问和长度

因为每个数组都有自己的下标,从0开始,所以,访问数组元素的话只需要访问下标号就行

获得数组长度,我们用arr.length 方法

        <script type="text/javascript">
			var computer = ['惠普','拯救者','雷神','联想']
			console.log(computer[1]);			//因为下标从 0 开始,所以下标 1 就是拯救者
			
			// 获取数组的长度一般用 arr.length 方法
			console.log(computer.length);		// 4
		</script>

四.数组的遍历

利用for循环可以将数组里的元素一个个的遍历出来

<script type="text/javascript">
			
			 var num = [1,12,345,43,12]
			 for(var i = 0;i < num.length;i++){
				 console.log(num[i]);
			 }
			 //  1 12 345 43 12
		</script>

五.数组元素的添加和删除

添加到末尾:arrayObj.push()

添加到开头:arrayObj.unshift()

删除最后一个:arrayObj.pop()

删除第一个:arrayObj.shift()

删除多个:

arrayObj.splice(deletePos)  

arrayObj.splice(deletePos,deleteCount)

arrayObj.splice(deletePos, deleteCount, insert)

<script type="text/javascript">
			 //  添加 1 和 8 到数组的开头和结尾
			 var num = [2,3,4,5,6,7]
			 var num1 = num.unshift(1)     //添加 1 到开头
			 var num2 = num.push(8)			//添加 8 到结尾
			 console.log(num2)				//返回的是添加末尾后num的长度  8 
			 console.log(num);				// [1, 2, 3, 4, 5, 6, 7, 8]
			 
			 //删除第一个和最后一个元素
			 var num = [1,1,2,3,4,5,6,6]
			 var num1 = num.pop()			//删除最后一个元素
			 var num2 = num.shift()       	//删除第一个元素
			 console.log(num);				// [1, 2, 3, 4, 5, 6]
			 
			 //删除多个元素
			 var num = [12,213,345,213,12,123,34]
			 var str = ['a','b','c','d','e','f','g']
			 var ele = ['h','i','j','k','l','m','n']
			 var num1 = num.splice(4)		//删除的是下标 4 后面的所有元素,并返回
			 console.log(num1);				// [12, 123, 34],返回删除的元素
			 console.log(num);				// [12, 213, 345, 213],剩余的元素
			 var str1 = str.splice(2,3)	    //找到下标 2 的元素,然后删除3个
			 console.log(str1);				// ["c", "d", "e"],返回删除的元素
			 console.log(str);				//  ["a", "b", "f", "g"],剩余的元素
			 
			 var ele1 = ele.splice(2,3,'f')	    //找到下标 2 的元素,然后删除3个,在补一个'f'
			 console.log(ele1);					// ["j", "k", "l"],返回删除的元素
			 console.log(ele);					// ["h", "i", "f", "m", "n"],剩余的元素
		</script>

六.数组元素的截取 合并 拷贝 和反转

数组元素的截取:arrayObj.slice(start, [end])

数组元素的拷贝:arrayObj.concat()

数组元素的合并:arrayObj.concat([item])

数组元素的反转:arrayObj.reverse()

<script type="text/javascript">
			 //  截取数组,并不会对原数组产生影响
			var num = [1,2,3,4,5,6,7]
			var str = [8,9,10,11,12,13]
			var num1 = num.slice(2,4)           // 截取下标 2-4 之间的数组元素  
			console.log(num1);					// [3, 4]
			console.log(num);					//[1, 2, 3, 4, 5, 6, 7]
			
			//  拷贝数组
			var str1 = str.concat();			 // 单纯的复制一个数组
			console.log(str1);
			var str2 = str.slice(0,str.length)	 // 截取下标 0-最后 之间的数组元素并打印,跟复制一样
			console.log(str2);
			
			 // 合并数组
			 var concat = num.concat(str)           // 合并num 和 str 两个数组 
			 console.log(concat);

             // 反转数组
			 var reverse = num.reverse()			// 将数组里面的元素翻转过来
			 console.log(reverse);					// [7, 6, 5, 4, 3, 2, 1]
		</script>

七.数组的排序和冒泡排序

数组的排序:arrayObj.sort()

<script type="text/javascript">
			//  数组的排序
			var num = [1, 3, 4, 5, 7, 2, 8]
			var str = [12, 34, 4356, 123, 1235, 345, 123]
			var num1 = num.sort() // 对数字进行排序,字符串排序,所以限制个位数,局限很大
			console.log(num1);

			var num2 = str.sort(function(a, b) {
				return a - b
			})
			//  function(a,b){return a - b}  牛逼的代码,放到sort里面就可以正常排序
			console.log(num2);			//[12, 34, 123, 123, 345, 1235, 4356]

			//冒泡排序
			for (var i = 0; i < str.length - 1; i++) {
				for (var j = 0; j < str.length - i - 1; j++){
					if(str[j] > str[j + 1]){
						var temp = str[j]
						str[j] = str[j + 1]
						str[j + 1] = temp
					}
				}
			}
			console.log(str);			//[12, 34, 123, 123, 345, 1235, 4356]
		</script>

八.字符串与数组的相互转换

1.数组转换成字符串

arrayObj.toString()                     返回连接后的字符串,由逗号(,)连接。

arrayObj.join(bystr)                     返回连接后字符串,bystr作为连接数组中元素的分隔符。

2.字符串转换为数组

str.split(bystr)                               将字符串按bystr字符切割之后以数组形式返回。

<script type="text/javascript">
			//  数组转换成字符串
			var num = [1,2,3,4]
			var str = num.join('-')
			console.log(str);
			var str1 = num.toString()
			console.log(str1);
			
			//  字符串转化为数组
			var str2 = 'a,s,r,t,g,q';
			var arr = str2.split(',')     //  按照 ‘,’转换成字符串 长度为 6
			var arr1 = str2.split('')	 //  按照 ‘’转换成字符串 长度为 11
			console.log(arr);
			console.log(arr1);
		</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值