数组常用方法整理

数组常用方法

有序的值的集合   是一个对象    数组是使用数字作为索引的操作元素
索引:从0开始的整数	 每一个数组都有元素,每一个元素在数值中都有一个位置,分别用数字表示

创建方式:

1.构造数组:
var arr = new Array ();
console.log(typeof arr); //object

1>.向数组中添加元素
语法:数组[索引] = 值;
arr[0] = 1;

2>.读取数组中的内容
语法:数组[索引];
索引超过最大取值,得到underfined

var arr = new Array();
arr[0] = 1;
arr[1] = 2;
console.log(arr,arr.length);  //1,2   2

3>.获取数组长度,可以使用length属性,获取数组长度

语法:数组.length
对于连续的数组,使用length可获取到数组的长度(元素的个数)
对于不连续的数组,使用length会获取到数组的最大索引+1;
	 arr[100] = 24
 	console.log(arr.length);   //101

4>. 修改length
如果修改的length大于原长度,则多出部分会空出来;
如果修改的length小于原长度,则多出的部分会删除;

var arr1 = new Array();
  	arr1[0] = 1;
   arr1[1] = 2;
   	arr1[2] = 3;
    arr1[3] = 4;
    //console.log(arr1,arr1.length);
    arr1.length = 10;
    console.log(arr1,arr1.length);  //如果修改的length大于原长度,则多出部分会空出来;
arr1.length = 2;
console.log(arr1,arr1.length);  //如果修改的length小于原长度,则多出的部分会删除;

数组的操作push/pop/unshift/shift

		1.push   //从数组的尾部添加一个或多个元素,返回增加后数组的长度
		
		2.pop() 从数组的尾部删除一个元素,返回这个删除的元素,原数组发生改变,不接受参数
		
		3.unshift()从数组的头部增加元素,有几个参数增加几个元素,返回增加后的数组的长度,原数组发生改变
		4.shift()从数组的头部删除一个元素,返回这个删除的元素,原数组发生改变,不接受参数

截取方式:slice 和 splice

		slice:     原数组不发生变化
			截取数据,返回原数据,需要将截取的数据封装到一个新数组中返回
		  第一个参数:截取开始位置的索引,包含起始索引
		  第二个参数:截取结束位置的索引,不包含结束索引
		  var a = arr(0,2);
		  第二个参数可以不写:可以截取从开始索引往后的所有元素
		  第二个参数可以是负值:则从后往前截取   -1:即位置为最后一个
		  
		splice:   原数组发生变化
			截取数据,用来删除数据中指定的元素   需要将截取的数据封装到一个新数组中返回
			使用splice会影响到原数组,将指定的元素从数据中删除
				并将删除的元素作为返回值返回
			参数:
			第一个参数:开始位置的索引
			第二个参数:删除的数量
			第三个参数:可以传递一些新的元素,这些元素将自动插入到开始索引位置的前面

			 var arr = ["孙","猪","唐","莎"];
			var b = arr.slice(0,2);
			console.log(b);  //孙   猪
			console.log(arr);  //孙  猪  唐 莎
			var a = arr.splice(1,1,"牛魔王");
			console.log(a);   //猪
			console.log(arr);   //孙 牛魔王 唐 莎

join()
将数值转换成字符串
不会对原数据产生影响,会把转化后的字符串作为结果返回
在join()中可以指定一个字符串作为参数,这个字符串将会作为数组中元素的连接符
如果不指定连接符,默认为,
reverse():
用来反转数组,前面的去后面,后面的去前面;
该方法会直接修改原数据

var arr6 = ["孙","猪","唐","莎"];
//result = arr6.join("hello");
//console.log(result);
arr6.reverse();
console.log(arr6);
						
var arr7 = ["c","j","f","h","t"];
arr7.sort();默认从小到大
arr7.reverse();//可以反着来
console.log(arr7);

sort():
用来对数组进行排序
会直接修改原数据
默认会按照Unicode编码排序

可以在sort()中添加一个回调函数,来指定排序规则
回调函数中定义两个形参
浏览器分别使用数组中的元素作为实参调用回调函数
使用哪个元素不一定,但是肯定的是a在b的前面;
浏览器会根据回调函数的返回值来确定元素的位置
返回一个大于0,则会交换位置
返回一个小于0,则位置不变
返回一个等于0的值,则位置不变

var arr8 =[1,5,6,8,11];
arr8.sort();
//console.log(arr8);  //1,11,5,6,8
arr8.sort(function (a,b){
		return a-b;   //如果从大到小  return b-a
});
console.log(arr8);//1,5,6,8,11

总结:
原数组发生变化:
pop
push
unshift
shift
splice
reverse
sort

原数组没有发生变化:
slice
join

ES5新增数组方法:

1.forEach: 不接受返回值
forEach()方法需要一个函数作为参数
数组中有几个元素,函数就执行几次,每次执行时,浏览器会将遍历到的元素以实参形式传递进来,可以定义形参来读取内容
第一个参数 value:当前正在遍历的元素
第二个参数 index:当前正在遍历的元素的索引
第三个参数 obj:正在遍历的数组
forEach方法无法中断执行,总是会将所有成员遍历完。如果希望符合某种条件时,就中断遍历,要使用for循环。

2.map():对数组的所有成员一次执行参数函数 接受返回值 原数组没有发生变化

			 var arr = [1,2,3,5];
				var a = arr.forEach(function(item){
					//console.log(item);
					return item+1;
				});
				var a = arr.map(function(item){
					//console.log(item);
					return item+1;
				});
				
				console.log(a);
				
				var b = arr.filter(function(item){
				return item>2;
			})
			console.log(b);  //3,5
			
			var arr = [1,2,3,5];
			console.log(arr.indexOf(5),arr.indexOf(11));  //3, -1
			
			var a = arr.some(function(item){
				return item>2;
			})
			console.log(a);  //true
			var a = arr.every(function(item){
				return item>2;
			})
			console.log(a);   //false

3.filter(): 用于过滤数组成员,满足条件的成员组成一个 新数组返回 原数组不变
它的参数是一个函数,所有数组成员一次执行,返回结果为 true 的元素组成一个新数组返回
第一个参数:当前成员
第二个参数:当前成员的索引
第三个参数:整个数组

4.indexOf(): 从 头部 返回某个元素(第一次出现)在数组中的索引,没有该元素则返回 -1, 可以判断一个数组中是否有某个元素

lastindexOf(): 从 尾部 开始返回某个元素(最后一次出现)在数值中的索引, 没有该元素则返回 -1

5.some() every(): 返回布尔值,表示判断数组成员是否符合某条件、
参数为一个函数,成员一次执行
some(): 一个成员值为true 则为true
every();所有成员值为true ,则为true

6.reduce(): 将内部的返回值作为实参传递第一个形参,进行下一次运算

var arr =[1,2,3,5]
var sum = arr.reduce(function(a,b){
	return a+b;
});
console.log(sum);  //1+2+3+5=11

var users = [
		 {name: 'tom', email: 'tom@example.com',age:16},
		 {name: 'peter', email: 'peter@example.com',age:18}
];
						
users
.filter(function (person) {
		 return person.age>=18;
})
.forEach(function(e){
		console.log(e)
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript 中,数组变异(Array Mutation)指的是对数组原有元素进行修改、增加或删除操作的方法常用数组变异方法有以下几种: 1. push():向数组末尾添加一个或多个元素,并返回新的长度。 2. pop():删除数组末尾的元素,并返回删除的元素。 3. shift():删除数组第一个元素,并返回删除的元素。 4. unshift():向数组开头添加一个或多个元素,并返回新的长度。 5. splice():从数组中删除元素或向数组中添加元素,返回被删除的元素。 6. sort():对数组进行排序,返回排序后的数组。 7. reverse():颠倒数组中元素的顺序,并返回颠倒后的数组。 除了上述数组变异方法之外,还有一些数组方法不会对原数组进行修改,而是返回一个新的数组常用的这类数组方法有以下几种: 1. concat():将两个或多个数组合并成一个新数组,并返回新的数组。 2. slice():从数组中选取指定的元素,返回新的数组。 3. filter():过滤数组中的元素,返回符合条件的元素组成的新数组。 4. map():对数组中的每个元素进行处理,返回处理后的元素组成的新数组。 5. reduce():对数组中的元素进行累加或累积,返回累加或累积的结果。 6. find():查找数组中符合条件的第一个元素,并返回该元素。 7. findIndex():查找数组中符合条件的第一个元素的索引,并返回该索引。 8. indexOf():查找数组中指定元素的索引,并返回该索引。 9. lastIndexOf():查找数组中指定元素最后出现的索引,并返回该索引。 10. includes():判断数组中是否包含指定元素,返回布尔值。 需要注意的是,数组变异方法会直接修改原数组,而不是返回一个新数组。如果你需要保留原数组,可以先将原数组复制一份,然后对复制的数组进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值