文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Javascript数组的 forEach 方法详细介绍

2024-04-02 19:55

关注

前言

在JavaScript 中数组的遍历 有很多中方法, 其中有一种 使用 foreach 来遍历数组。

mdn官方文档

语法:

arr.forEach(callback(currentValue [, index [, array]])[, thisArg])

参数:

为数组中每个元素执行的函数,该函数接收一至三个参数:currentValue数组中正在处理的当前元素。index 可选数组中正在处理的当前元素的索引。array 可选forEach() 方法正在操作的数组。

可选参数。当执行回调函数 callback 时,用作 this 的值。

在forEach 中传入一个 callback 函数, 函数最多可以接收 三个值, 分别为当前正在遍历的值, 当前值对应的索引,以及当前数组本身

小试

现在有一个场景,我和我的室友们,现在在一个数组里面。 按照排行分别为: 老大,老二,老三, … ,老六, 小七.

var arr = ['Liu laoda', 'Li laoer', 'Wei laosan', 'Frank', 'Guan laowu', 'Yang laoliu', 'Li xiaoqi'];

// 在 forEach 中 传入 一个function ,接收两个参数
arr.forEach(function(name,index){
  console.log(name, ' - ',index);
})

结果如下: 第一个参数就是 当前遍历的元素,第二参数为当前元素的索引

注意: forEach() 为每个数组元素执行一次 callback 函数 ,即每个元素都会执行一次callback 函数

来看看回调函数的第三个参数 ,表示 就是这个数组本身。

var arr = ['Liu laoda', 'Li laoer', 'Wei laosan'];

arr.forEach(function(name,index,person){
  console.log(name, ' - ',index);
  console.log(person);
})

还有一个参数 thisArg 这个参数

当回调函数执行的时候, 回调函数中 使用this 就是这个值。来看一个例子

var arr = ['Liu laoda', 'Li laoer', 'Wei laosan'];

// thisArg 此时传入  {'name':'frank'},当回调函数执行的时候,this 就是这个值。
arr.forEach(function(name,index){
  console.log(this);
},{'name':'frank'})

如果省略了 thisArg 参数,或者其值为 nullundefinedthis 则指向全局对象。

var arr = ['Liu laoda', 'Li laoer', 'Wei laosan'];
// 没有传thisArg 参数
arr.forEach(function(name,index){
  // 此时是window
	console.log(this);
})

使用forEach注意事项

除了抛出异常以外,没有办法中止或跳出 forEach() 循环。如果你需要中止或跳出循环,forEach() 方法不是应当使用的工具。

forEach 不支持 break这种语句退出循环。

如果你想在遍历数组的过程中想要 提前终止循环,就不要使用 forEach 遍历, 可以使用for 循环来遍历数组.

例如:我只想遍历到i==0 的时候,提前终止循环

var arr = ['Liu laoda', 'Li laoer', 'Wei laosan'];
for (let i = 0; i < arr.length; i++) {
    if (i === 1) {
        break;
    }
    console.log(arr[i],'-', i);
}

// Liu laoda - 0

到此这篇关于Javascript数组的 forEach 方法详细介绍的文章就介绍到这了,更多相关JS  forEach内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯