JavaScript中数组及数组的方法

一.数组及数组的方法

1.数组的概念:
是值数据的集合,在JavaScript中数组中的数据类型可以是不同的.
2.数组的声明:
(1)var 数组的名称=new Array();
(2)var 数组的名称=[];
3.数组的初始化
(1)var 数组的名称=new Array(‘值1’,值2,‘值3’,…)//js 是一种弱类型的脚本语言索引可以存储不同的数据类型.
(2)var 数组的名称=[值1,值2,值3,…]
(3)var 数组的名称=new Array()
例:

<script type="text/javascript">
	var arr=new Array('Hello','InLett',100,true,34.23);
//	根据索引获取值
	alert(arr[1]);//输出结果InLett
</script>

重点:通过遍历数组的方式来获取数组中的数据
4.操作数组数据的方式
(1)join():将数组成员通过一个分割符合并成字符串
例:

<script type="text/javascript">
//	(1)join():将数组成员通过一个分割符合并成字符串
	var arr=[12,23,1,0,23,45];
	var str=['L','O','V','E'];
//	alert(str.join('-'));//输出结果为L-O-V-E
	alert(arr.join('*'));	//输出结果为12*23*1*0*23*45
</script>

在这里插入图片描述在这里插入图片描述
(2)push()和pop(): 在数组的最后添加或是删除成员
例:

<script type="text/javascript">
	var arr1=['html','JavaScript','css'];
	var num= arr1.push('jQuery'); 
	alert(arr1);
</script>

在这里插入图片描述
例:

<script type="text/javascript">
	var arr1=['html','JavaScript','css'];
	arr1.pop();
	alert(arr1);
</script>

在这里插入图片描述
(3)unshift()和shift(): 在数组的最前面添加或是删除成员
例:

<script type="text/javascript">
	var arr1=['html','JavaScript','css'];
	arr1.unshift('jQuery');
	alert(arr1);
</script>

在这里插入图片描述
例:

<script type="text/javascript">
	var arr1=['html','JavaScript','css'];
	arr1.shift();
	alert(arr1);
</script>

在这里插入图片描述
(4)reverse(): 表示为将数组的数据进行翻转
例:

<script type="text/javascript">
	var num1=[1,2,3,4,5,6];
	num1.reverse();
	alert(num1);
</script>

在这里插入图片描述
(5)indexOf()和lastIndexOf:这两个方法都是用来搜索整个数组中具有给定值的元素,返回找到的第一个元素的索引,如果没找到,则返回-1.
indexOf表示返回数组中元素第一次出现的索引值,
lastIndexOf则是反向搜索.
例:

<script type="text/javascript">
	var num2=[1,2,13,1,2,2];
	var index= num2.indexOf(2);//返回第一次出现2的索引
	alert(index);//输出结果为1
</script>

例:第一个值表示要查询的数据;第二个值表示起始要查询的索引;查询不到返回-1

<script type="text/javascript">
	var num2=[1,2,13,1,2,2];
	var index= num2.indexOf(2,3);
	//var index=num2.indexOf(2,6);  //查询不到返回-1
	alert(index);//输出结果为4
</script>

(6)splice():在数组中添加成员
例:

<script type="text/javascript">
	var num4=[1,2,3,4,5,6];
	num4.splice(1,2,7,8,9);//第一个值1表示要开始添加成员的索引位置;第二个值2表示删除2两个成员(包含自身);第三个值7,8,9 表示 在此位置上添加 7,8,9
	alert(index);//输出结果为1789456
</script>

(7)slice():从一个数组中选择(截取)元素
例:第一个值表示开始截取的位置索引;第二个值表示截取结束位置的索引,但是并不包含结束位置索引所对应的成员

<script type="text/javascript">
	var num5=[2,3,4,5,6,7];
	var num6= num5.slice(2,4);
	alert(num6);//输出结果为4,5
</script>

(8)sort():返回排序后的数组.如果数组包含undefined,会被排序到数组的尾部.如果不带参数的用sort(),数组元素以字母表顺序排序.

<script type="text/javascript">
	var a=[2,33,1111,444];
	a.sort();
	alert(a);
</script>

在这里插入图片描述

<script type="text/javascript">
	var a=['a','c','g','j','r','e','d','q','z','u'];
	a.sort();
	alert(a);
</script>

在这里插入图片描述

<script type="text/javascript">
	var c=['a','abc','def','b','zyujg','jgi','j',1,222,777,55,44,66,8888,99];
	c.sort();
	alert(c);
</script>

在这里插入图片描述
如果是数字从小到大排序:

<script type="text/javascript">
	var a=[2,33,1111,444]
	a.sort(function(a,b){
		return a-b
	})
	alert(a);
</script>

在这里插入图片描述
(9)concat():创建并返回一个新的数组
例:

<script type="text/javascript">
	var a = [1,2,3];      
	var b = a.concat(4,5);         
	var c = a.concat([4,5]);         
	console.log(a); //返回的还是1,2,3
	console.log(b); //返回1,2,3,4,5
	console.log(c);  //返回1,2,3,4,5
</script>

这个方法还可以用来复制数组。
例:

<script type="text/javascript">
	var a = [1,2,3];        
	var b = a.concat();                 
	console.log(a); //返回1,2,3
	console.log(b); //返回1,2,3
</script>

(10).toString()和toLocaleString()

toString()方法将每个元素转化为字符串,类似于不传参的join()方法.

toLocaleString()方法是toString()的本地化版本.
(11).forEach()方法,从头至尾遍历数组,为每个元素调用指定的函数.
例:

<script type="text/javascript">
	var a = [1,2,3,4,5];       
	var sum = 0;             
	a.forEach(function (value) {
	    sum += value
	})             
	console.log(sum); //sum = 15
</script>

(12)map()方法:
和forEach()类似,调用数组的每个元素传递给指定函数,并返回一个数组,所以它和forEach()的区别在于,有一个返回值.不修改原数组,返回的数组长度和原数组相同.
例:

<script type="text/javascript">
	var a = [1,2,3,4,5];             
	var b = a.map(function (value) {
  		  return value+1
	})         
	console.log(b); //返回2,3,4,5,6
</script>

(13)filter()方法,返回的是调用数组的一个子集。
例:

<script type="text/javascript">
	var a = [1,2,3,4,5];          
	var b = a.filter(function (value) {
  		return value > 3
	})         
	console.log(b); //返回4,5
</script>

注:如果使用map()方法,返回的是false, false, false, true, true
filter()会跳过稀疏数组中缺少的元素,他的返回数组总是稠密的.所以可以用一下方法来压缩稀疏数组的空缺.
例:

<script type="text/javascript">
	var a = [1,2,,,5];          
	var b = a.filter(function (value) {
  		 return true
	})         
	console.log(b); //返回1,2,5
</script>

(14)every()和some()
every()方法是只有数组中所以元素都满足某个条件才会返回true;some()方法是只要有满足条件的值,就返回true。
以every()方法为例:

<script type="text/javascript">
	var a = [1,2,3,4,5];
	var b=a.every(function (value) {
		return value < 10
	})
	var c=a.every(function (value) {
   	 	return value % 2 === 0
	}) 
	alert(b); //true
	alert(c)//false
</script>	

猜你喜欢

转载自blog.csdn.net/qq_43434300/article/details/84705834