javaScript内置对象之Array对象、正则表达式


前言

本文将会对于Javascript内置对象之数组对象,正则表达式进行详细的说明总结;同时补充了三个点运算的相关内容。


一、javascript内置对象之Array对象

1.数组的定义方式,特点及属性

数组的定义方式(两种):
(1)采用new的方式:var arr = new Array();
(2)采用中括号的方式:var arr2 = [1,2,3,4,5];(与c语言中定义数组相似)
数组的特点:
1.长度不是固定的,可以随时变化
2.数组的下标可以是任意数据
3.数组的内容可以是任意数据
数组的属性:
1.length表示数组的长度
2.constructor:返回创建数组对象的原型函数
3.prototype:允许你象数组对象添加属性或者方法

代码如下:(示例)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		
	</head>
	  <script>
	       //定义方式一
	       //1.定义一个空数组,初始长度为0
		    var  arr = new Array() ;  
		   console.log(arr.length)
		   //2.定义一个数组,初始长度为4
		   var  arr1 = new Array(4) ;  
		   console.log(arr1.length) 
		   //3.定义一个数组,初始长度是3,里面的数据是4,5,6
		   var  arr2 = new Array(4,5,6) ; 
		   console.log(arr2.length)
		   for(let i = 0 ;i<arr2.length ;i++)
				console.log("arr2:",arr2[i])
		  // 4.定义一个数组,长度为1,内容为字符串5
		   var arr3 = new Array("5") ;  
		   console.log("arr3",arr3.length) 
		   
		   //定义方式二:
		   let arr4 = [] ;  //定义一个空数组
		   let arr5 = [1,2,32] // 定义一个数组,内容是1,2,32
		   console.log(arr5);
	  </script>
	<body>
	</body>
</html>

2.数组的方法

方法描述
push()添加元素
shift()删除首元素
join()用指定的字符串将数组的数据连接为一个字符串 (如果里面没有传,默认用逗号链接)
concat()连接两个或者更多的数组,返回的是一个新的数组
pop()删除数组的最后一个元素并返回删除的元素
reserse()颠倒数组中元素的顺序
slice()选取数组的一部分,返回的是指定索引到末尾的元素的数组(新数组)
splice()指定索引处开始删除指定长度的数据,添加新的数据
sort()进行排序
unshift()向数组的开头添加元素
indexof() ,lastIndexOfindexOf搜索数组中的元素并显示的它的位置,lastIndexOf 搜索数组中的元素并把它最后一次出现的位置返回
map()将数组中的每个元素都做相同的处理,需要传递一个函数对象做实参,第一个参数就是数组中的每个元素
filter()将数组中的元素进行过滤;需要传递一个函数参数,第一个参数是代表数组中的每个元素, js引擎会调用函数做过滤,需要返回true,或者false,表示满足或者不满足条件
some()检索数组元素中是否有元素符合指定条件
reduce(), reduceRight()reduce将数组元素计算为一个值(从左到右),reduceRight同理(从右到左)
every()检索数值元素的每个元素是否符合条件

代码如下:(部分示例)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<script>
             //index,indexOf
              let arr = ['中国','美国','菲律宾','日本','菲律宾','越南'] ;
			 
			 let index = arr.indexOf('菲律宾') ;
			 let index1 = arr.lastIndexOf('菲律宾')
			 
			 console.log(index)
			 console.log(index1)

            //reduce,reduceRight
			 let ps = [
				  {name:'张三',age:19,height:176},
				  {name:'李四',age:25,height:173},
				  {name:'王麻子',age:15,height:189},
				  {name:'王五',age:23,height:175},
			  ] ;
			  
			  //希望计算所有人的年龄的和
			  
			  let sum = ps.reduce((p,p1) =>{ 
				  console.log(">>" ,p.age,p1.age)
				  // console.log(p1.age + p.age)
				  let age = p.age + p1.age ;
				  let obj = {"age":age}
				 return  obj  ;})
			  
			  console.log("sum:",sum.age) 
			  
			  //希望计算所有人的身高和
			  let hsum = ps.reduceRight((p,p1)=>{
				  console.log("<<" ,p.height,p1.height) 
				  let h = p.height + p1.height ;
				  let obj = {'height': h} ;
				  
				  return obj ;
			  }) ;
			  
			  console.log("sum height:" ,hsum.height)
			  
			 let arr = [1,2,3,4] ;
			  
			  let s = arr.reduce((v,v1) => { 
				  console.log('===',v,v1)
				  return v + v1}) ;
			  console.log(s)
		</script>
	</body>
</html>

3.数组元素的获取

1.获取单个元素:arr[index]
2.获取多个元素:
(1)for …in循环:对对象属性进行循环
(2)for …of循环:对内容进行循环
3.forEach方法:第一个参数代表了数组中的每个元素,第二个参数代表了索引,第三个参数表示数组的json格式的对象

代码如下:(示例)

<script>
			let arr = ['北京','上海','杭州','深圳'] ;
			
			//1.获取单个元素
			//console.log(arr[1])
			//2.获取多个元素
			//for ....in 循环 : 对对象的属性进行循环
			// for(let coun in arr)
			// 	console.log(coun,arr[coun])
			
			//打印p标签的各种属性
			// var p = document.getElementById("p")
			
			// for(let attr in p)
			// 	console.log(attr)
			
			//3.for....of循环 : 对内容进行循环
			// for(let coun of arr)
			//    console.log(coun)
			
			//4.forEach方法
			arr.forEach(function(v,index,json){   
				console.log(v,index,json) 
			}) 
</script>	

二、javascript内置对象之正则表达式(RegExp)

1.正则表达式的描述:
1》正则表达式是描述字符模式的对象
2》正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具
2.语法:
var patt = new RegExp(pattern,modifiers);
或者是
var patt = /pattern/modifiers;
pattern(模式)描述了表达式的模式;
modifiers(修饰符)用于指定全局匹配、区分大小写的匹配和多行匹配
注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠\).
以下定义变量是等价的:
var re = new RegExp("\w+");
var re = /\w+/;

代码如下:(示例)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<script>
			var reg = /a+/i 
			
			let s = "i hve money " ; 
			
			 let s1 = reg.exec(s) ;
			 console.log(s1)
			 let f = reg.test(s)
			 console.log(f)
			
			var reg1 = /a{1,5}/i
			
			console.log(reg1.test('ab'))
			console.log(reg1.test('abcfrf')) 
			let s2 = reg1.exec('mnabcdefg') ;
			console.log(s2[0])
			console.log(s2)
			
			//匹配一下电子邮箱
			//abcd@163.com
			
			let reg2 = /.+@\d{3,}\..{2,3}/i
			
			console.log(reg2.test('zhang@163.com'))
			console.log(reg2.test('@163.com'))   //@符号之前只有要有1个字符
			console.log(reg2.test('zhang163.com'))   //没有@符号,所以不符合要求
			console.log(reg2.test('zhang@1114.com'))   //@符合到圆点之间至少要有3个数字
			console.log(reg2.test('zhang@1114com'))   //没有圆点
			console.log(reg2.test('zhang@1114.commaa'))   //没有圆点
			console.log(reg2.exec('zhang@1114.commaa'))
			
			
		</script>
	</body>
</html>


三、三个点运算(...附加知识)

定义:就是把数组或者是集合进行拆分,然后把元素一个一个进行传递

代码如下:(示例)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<script>
			 
			let arr = [1,2,3,4,5] ;
			
		    console.log(arr);
			console.log(...arr);
			
		    let set1 = new Set([1,2,3,4,5,8,9]) ;
			
	    	console.log(set1);
		    console.log(...set1);
			
			let map1 = new Map() ;
			map1.set("name","张三丰") ;
			map1.set("age","20") ;
			
		    console.log(map1.keys());
			console.log(...map1.keys());
			
			function fun(v){
				console.log(...v);
			}
			
			fun(arr)
			
		</script>
	</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值