js-数组几个容易混乱的方法

数组 :

  1. reduce

array.reduce( function(total, currentValue, currentIndex, arr),
initialValue)

收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值,

参数可选描述
total必需初始值, 或者计算结束后的返回值。
currentValue必需当前元素
currentIndex可选当前元素的索引
arr可选当前元素所属的数组对象。
initialValue可选传递给函数的初始值
<script>
		//10+arr
		let arr = [1,2,3,4]
		let sum = arr.reduce((total,value,index,arr)=>{return total+value},10)
		console.log(sum)
	</script>
  1. map

array.map(function(currentValue,index,arr), thisValue)

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。长度与原数组想等
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。

参数可选描述
currentValue必须当前元素的值
index可选当前元素的索引值
arr可选当前元素属于的数组对象
thisValue可选对象作为该执行回调时使用,传递给函数,用作 “this” 的值。
如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。
<script>
		let arr = [1,2,3,4]
		let sum = arr.map((value,index,arr)=>{return value*2})
		console.log(sum)
	</script>
  1. forEach

array.forEach(function(currentValue, index, arr), thisValue),

没有返回值,本质上等同于 for 循环,对每一项执行 function 函数。即map是返回一个新数组,原数组不变,forEach 是不改变原数组。

	<script>
		let arr = [1,2,3,4]
		let s = 0;
		let sum = arr.forEach((value,index,arr)=>{ s+=value})
		console.log(sum)//undefined
		console.log(arr)//[1, 2, 3, 4]
		console.log(s)//10
	</script>
参数描述
currentValue必需
index可选
arr可选
thisValue可选

4.filter

array.filter(function(currentValue,index,arr), thisValue)

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。

	<script>
		let arr = [1,2,3,4]
		
		let sum = arr.filter((value,index,arr)=>{ return index>1})
		console.log(sum)//undefined
		console.log(arr)//[1, 2, 3, 4]
	
	</script>

5.every

array.every(function(currentValue,index,arr), thisValue)

对数组中的每一项进行判断,若都符合则返回true,否则返回false。
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。

注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
参数同上

	<script>
		let arr = [1,2,3,4]
		
		let sum = arr.every((value,index,arr)=>{ return value>1})
		console.log(sum)//false
		console.log(arr)//[1, 2, 3, 4]
	
	</script>

15.Array.some(function),对数组中的每一项进行判断,若都不符合则返回false,否则返回true。 同上 一个满足即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值