JS遍历数组的12种方法

总结遍历数组的方法,方便日后查阅!

接下来例子皆以该数组为基础

const arr = [{id:1,age:10},{id:2,age:20},{id:3,age:30}]

一、for

for 循环和 for-in 能正确响应 break、continue 和 return语句,但 forEach 不行。

二、foreach

接收一个回调函数作为参数, 该回调接收3个参数,没有返回值。

  • item:每个元素
  • index:元素数组下标
  • arr:数组本身

注意:

1.foreach() 没有返回值

2.foreach() 不会对空数组进行检测

三、map

接收一个回调函数作为参数, 该回调接收3个参数。

  • item:每个元素
  • index:元素数组下标
  • arr:数组本身

注意:

1.map() 有返回值

2.map() 不会对空数组进行检测。

3.map() 不会改变原始数组。

四、for...of

注意:

1.只有可迭代对象(iterator)才能使用(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)。

2.普通对象不能使用。

五、filter

接收一个回调函数作为参数, 该回调接收3个参数。

  • item:每个元素
  • index:元素数组下标
  • arr:数组本身

注意:

1.filter() 有返回值,返回值是一个新数组

2.filter() 不会对空数组进行检测

3.filter() 不会改变原始数组。

六、every

every相当于逻辑关系中的且(&&),只有所有参数满足条件的时候,才会返回true,如果有一个不满足,就会逻辑中断,返回false。通俗地说:every就是找假,一假则假

接收一个回调函数作为参数, 该回调接收3个参数。

  • item:每个元素
  • index:元素数组下标
  • arr:数组本身

注意:

1.every有返回值,返回值是一个布尔值

2.every 不会对空数组进行检测

3.every 不会改变原始数组

七、some

 

some相当于逻辑关系中的或(||),只要有一个参数满足条件,就会中断逻辑,返回true,遍历结束,没有找到合适的参数,就返回false。通俗的说:some就是找真,一真则真

接收一个回调函数作为参数, 该回调接收3个参数。

  • item:每个元素
  • index:元素数组下标
  • arr:数组本身

注意:

1.​​​​​​​some有返回值,返回值是一个布尔值

2.some不会对空数组进行检测

3.some不会改变原始数组

八、reduce

reduce 顺着挨个累加,接收一个回调函数作为参数, 该回调接收4个参数。

  • initialValue:上一次调用回调返回的值,或者是提供的初始值(initialValue)
  • currentValue :数组中当前被处理的元素)
  • index:元素数组下标
  • arr:数组本身

注意:

1.​​​​​​​reduce() 对于空数组是不会执行回调函数的。

九、reduceRight

reduceRight 倒着挨个累加,接收一个回调函数作为参数, 该回调接收4个参数。

  • initialValue:上一次调用回调返回的值,或者是提供的初始值(initialValue)
  • currentValue :数组中当前被处理的元素)
  • index:元素数组下标
  • arr:数组本身

注意:

1.​​​​​​​reduceRight() 对于空数组是不会执行回调函数的。

十、find

返回数组中符合测试函数条件的第一个元素,否则返回undefined。

接收一个回调函数作为参数, 该回调接收3个参数。

  • item:每个元素
  • index:元素数组下标
  • arr:数组本身

注意:

1.​​​​​​​find对于空数组是不会执行回调函数的。

2.find不会改变原始数组

十一、 findIndex

返回符合条件的第一项的下标,没有则返回 -1。

接收一个回调函数作为参数, 该回调接收3个参数。

  • item:每个元素
  • index:元素数组下标
  • arr:数组本身

注意:

1.​​​​​​​findIndex对于空数组是不会执行回调函数的。

2.findIndex不会改变原始数组

十二、 keysvaluesentries

它们都返回一个遍历器对象,可以用 for...of 循环进行遍历

  • keys – 返回元素下标
  • values – 返回元素本身
  • entries – 返回元素和下标

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JavaScript遍历数组有多方法。其中常用的方法包括forEach、map、for循环、for of、for in、filter和find。 1. 使用forEach方法进行遍历。forEach方法接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用。可以使用item参数来访问当前遍历到的元素,使用index参数来访问元素的索引,使用self参数来访问数组本身。例如: arr.forEach(function(item, index, self) { console.log(item); }); 这段代码会打印出数组arr中的每个元素。 2. 使用map方法进行遍历和映射。map方法也接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用,并返回一个新的数组。可以使用item参数来访问当前遍历到的元素。例如: let newArr = arr.map(item => { return item * 2; }); 这段代码会将数组arr中每个元素都乘以2,并将结果保存在新数组newArr中。 3. 使用for循环进行遍历。可以使用临时变量将数组的长度缓存起来,以避免重复获取数组长度。例如: for (var i = 0; i < arr.length; i++) { console.log(arr[i]); } 这段代码会按顺序遍历数组arr中的每个元素,并打印出来。 4. 使用for of循环进行遍历。for of循环可以直接遍历数组中的每个元素。例如: for (var item of arr) { console.log(item); } 这段代码会按顺序遍历数组arr中的每个元素,并打印出来。 5. 使用for in循环进行遍历。for in循环遍历的是数组的索引,而不是数组的值。例如: for (var index in arr) { console.log(arr[index]); } 这段代码会按顺序遍历数组arr中的每个元素,并打印出来。 6. 使用filter方法进行遍历和筛选。filter方法也接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用,并返回一个满足某个条件的新数组。例如: let newArr = arr.filter(item => { return item < 3; }); 这段代码会返回一个新数组newArr,其中包含数组arr中小于3的元素。 7. 使用find方法进行遍历。find方法也接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用,直到找到满足某个条件的元素为止。例如: let result = arr.find(item => { return item === 3; }); 这段代码会返回数组arr中第一个等于3的元素。 以上是JavaScript中常用的几遍历数组方法。根据实际需求选择合适的方法来进行遍历。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [JS遍历数组的十五方法](https://blog.csdn.net/weixin_39987434/article/details/130869691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值