JS数组各种迭代方法汇总

JS数组各种迭代方法汇总

for in

      const array = [1, 2, 3, 4, 5, 6]
      for (let index = 0; index < array.length; index++) {
        const element = array[index]
        console.log(element)
      }

forEach

Array.forEach(callback)
callback: 为数组每个元素执行的函数,那些已删除或者未初始化的项将被跳过,接受三个参数
item:数组正在处理的当前元素,
index:数组正在处理当前元素索引,
array:正在操作的数组。
返回值:undefined

	  array.forEach((item, index, array) => {
        console.log(array)
      })

filter

Array.filter(callback)
创建一个新数组, 其包含通过所提供函数实现的测试的所有元素, 对于那些已经被删除或者从未被赋值的索引不会被调用,filter 不会改变原数组,它返回过滤后的新数组
callback: 为数组每个元素执行的函数,接受三个参数
item:数组正在处理的当前元素,
index:数组正在处理当前元素索引,
array:正在操作的数组。
返回值:一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。

filter 遍历的元素范围在第一次调用 callback 之前就已经确定了。在调用 filter 之后被添加到数组中的元素不会被 filter 遍历到。如果已经存在的元素被改变了,则他们传入 callback 的值是 filter 遍历到它们那一刻的值。被删除或从来未被赋值的元素不会被遍历到。

	const arrary = [2,3,4,5,6,7,8]
	 var newArr = array.filter((item, index, array) => item > 5)
	 // newArr:[6,7,8]

map

Array.map(callback)
callback: 为数组每个元素执行的函数,接受三个参数
item:数组正在处理的当前元素,
index:数组正在处理当前元素索引,
array:正在操作的数组。
返回值:一个新数组,每个元素都是回调函数的结果(包括undefined)

	 const arrary = [2,3,4,5,6,7,8]
	 var newArr = array.map((item, index, array) => item + 2)
	 // newArr : [4, 5, 6, 7, 8, 9, 10]

reduce

Array.map(callback,initialValue)
callback: 为数组每个元素执行的函数,接受四个参数
accumulator:累计器累计回调的返回值; 它是上一次调用回调时返回的累积值
item:数组正在处理的当前元素,
index:数组正在处理当前元素索引,
array:正在操作的数组。
initialValue:作为第一次调用传入callback的第一个值,如果没有这个值,默认使用数组第一个元素,在没有初始值的空数组上调用 reduce 将报错
返回值:函数累计处理的结果

	   const arrary = [1,2,3,4,5]
	   var newArr = array.reduce((acc, item, index, array) => acc + item, 10)
	   // newArr: 45

some

Array.map(callback)
方法测试是否至少有一个元素可以通过被提供的函数方法
callback: 为数组每个元素执行的函数,接受三个参数
item:数组正在处理的当前元素,
index:数组正在处理当前元素索引,
array:正在操作的数组。
返回值:Boolean,如果有一个元素通过测试就返回true,否则返回false

 	  const arrary = [1,2,3,4,5]
	  var newArr = array.some((item, index, array) => item > 4)
      // newArr: true

every

array.every(callback)
方法测试是否每个元素都能通过测试
callback: 为数组每个元素执行的函数,接受三个参数
item:数组正在处理的当前元素,
index:数组正在处理当前元素索引,
array:正在操作的数组。
返回值:Boolean,如果每个元素都能通过测试则返回true否则返回false,空数组返回true

	 const arrary = [1,2,3,4,5]
	  var newArr = array.every((item, index, array) => item > 0)
	  // newArr: true

find

arrar.find(callback)
callback: 为数组每个元素执行的函数,接受三个参数
item:数组正在处理的当前元素,
index:数组正在处理当前元素索引,
array:正在操作的数组。
返回值:返回通过测试的第一个元素的值,没有返回undefined,当找到这个值,立即返回

		const arrary = [1,2,3,4,5]
	 	var newArr = array.find((item, index, array) => item > 2)
	  // newArr :3

findIndex

array.findIndex(callback)
callback: 为数组每个元素执行的函数,接受三个参数
item:数组正在处理的当前元素,
index:数组正在处理当前元素索引,
array:正在操作的数组。
返回值:返回第一个通过测试元素的索引,没有则返回-1,当找到这个值,立即返回当前索引

		const arrary = [1,2,3,4,5]
	 	 var newArr = array.findIndex((item, index, array) => item > 4)
	  	// newArr :4
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值