2019独角兽企业重金招聘Python工程师标准>>>

JavaScript数组forEach循环

今天写JavaScript代码把forEach循环数组忘记写法了,在此记录一下以防止未来忘记。

let a = [1, 2, 3];
a.forEach(function(element) {console.log(element);
});

有趣的是,forEach是a的一个函数。

语法

array.forEach(callback(currentValue, index, array){//do something
}, this)array.forEach(callback[, thisArg])
  • callback: 为数组中每个元素执行的函数,该函数接收三个参数:

    • currentValue(当前值)数组中正在处理的当前元素。
    • index(索引) 数组中正在处理的当前元素的索引。
    • array forEach()方法正在操作的数组。
  • thisArg: 可选参数。当执行回调函数时用作this的值(参考对象)。

描述

forEach 方法按升序为数组中含有效值的每一项执行一次callback 函数,那些已删除(使用delete方法等情况)或者未初始化的项将被跳过(但不包括那些值为 undefined 的项)(例如在稀疏数组上)。

如果给forEach传递了thisArg参数,当调用时,它将被传给callback 函数,作为它的this值。否则,将会传入 undefined 作为它的this值。callback函数最终可观察到this值,这取决于 函数观察到this的常用规则。

forEach 遍历的范围在第一次调用 callback 前就会确定。调用forEach 后添加到数组中的项不会被 callback 访问到。如果已经存在的值被改变,则传递给 callback 的值是 forEach 遍历到他们那一刻的值。已删除的项不会被遍历到。如果已访问的元素在迭代时被删除了(例如使用 shift()) ,之后的元素将被跳过 - 参见下面的示例。

forEach() 为每个数组元素执行callback函数;不像map() 或者reduce() ,它总是返回 undefined值,并且不可链式调用。典型用例是在一个链的最后执行副作用。

注意没有办法中止或者跳出 forEach 循环,除了抛出一个异常。如果你需要这样,使用forEach()方法是错误的,你可以用一个简单的循环作为替代。如果您正在测试一个数组里的元素是否符合某条件,且需要返回一个布尔值,那么可使用 Array.every 或 Array.some。如果可用,新方法 find() 或者findIndex() 也可被用于真值测试的提早终止。

示例

function logArrayElements(element, index, array) {console.log("a[" + index + "] = " + element);
}// 注意索引2被跳过了,因为在数组的这个位置没有项
[2, 5, ,9].forEach(logArrayElements);// a[0] = 2
// a[1] = 5
// a[3] = 9[2, 5, "", 9].forEach(logArrayElements);
// a[0] = 2
// a[1] = 5
// a[2] =
// a[3] = 9[2, 5, undefined ,9].forEach(logArrayElements);
// a[0] = 2
// a[1] = 5
// a[2] = undefined
// a[3] = 9let xxx;
// undefined[2, 5, xxx ,9].forEach(logArrayElements);
// a[0] = 2
// a[1] = 5
// a[2] = undefined
// a[3] = 9

参考:

  • http://www.webhek.com/post/javascript-loop-foreach-for-in-for-of.html
  • https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

转载于:https://my.oschina.net/u/733473/blog/875075

JavaScript数组forEach循环相关推荐

  1. PHP数组foreach循环

    PHP数组foreach循环 定义数组: $array = ['name'=>'张三', 'age'=>18, 'sex'=>'男', '爱吃土']; 1.只读取值: foreach ...

  2. php数组,foreach循环合并数组,array_merge()的循环用法

    比如我知道了三个一级分类的id,1,2,3 $arr1=array(1,2,3); 我要循环这三个分类,依次去数据库查询他们各自的子分类.结果是得到三个数组 现在想他所有子分类合并在一起.然后,再随机 ...

  3. oracle for循环遍历数组,foreach循环

    Smarty foreach控制循环次数 1.在 smarty 中数组是经常会用到的,循环遍历数组用 section 或者 foreach ,如何得到数组长度或者判断一个数组个数呢?可以用{$arra ...

  4. php数组foreach循环添加键值对_在PHP的foreach循环中插入一个$key作为变量

    我有这个数组: $lista_agregados = array('po' => '0', 'brita' => '0'); 而这些数组: $po = array(0 => arra ...

  5. php数组foreach循环添加键值对_php 给数组增加键值对

    php给数组增加键值对的方法:首先创建一个PHP示例文件:然后使用foreach语句为数组增加键值对即可,其语句如"foreach ($a as &$item) {$item['b' ...

  6. php三维数组转换二维数组,php 三维数组转二维数组(多维数组变合拼二维数组)(foreach循环 数组叠加)...

    /*************** * @function 三维数组转二维数组 * @Param: $array : 传入参数 * @Return: $tempArr 返回结果数组 ********** ...

  7. php数组foreach循环添加键值对_循环 - PHP二维数组根据键值对获取一组数组 (不使用foreach)...

    问 题 $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'email' => 'zhangsan@sina.com' ...

  8. php嵌套循环太慢,php 大数组 foreach 循环嵌套的性能优化

    前提:最近在做后台的时候,页面加载太慢,故第一时间想到的自然是优化SQL, 优化后sql查询速度从 2秒变成了零点几秒, 以为就这麽完事了,然并卵,加载竟然花费30秒! 这麽慢,然后在代码中分块记录它 ...

  9. c foreach循环_C ++中的foreach循环

    c foreach循环 介绍 (Introduction) The foreach loop in C++ or more specifically, range-based for loop was ...

  10. foreach 循环达到条件的第一次就停止_是否应该停止在JavaScript代码中使用forEach()?...

    在本文中,我想概述一下标准的 for 循环和 forEach() 方法背后的区别,并对它们各自带来的一些好处进行评论. 作为免责声明,请不要把标题当真.我写这篇文章的目的是为了让读者了解缺点,并提供一 ...

最新文章

  1. Oracle IMP-00403
  2. 联想g400从u盘启动计算机,联想g400u盘装系统的方法
  3. 文巾解题 1433. 检查一个字符串是否可以打破另一个字符串
  4. Typora markdown公式换行等号对齐_Typora-编写博客格式化文档的最佳软件
  5. TensorFlow 使用例子-LSTM实现序列标注
  6. Defensive programming -- Code complete reading notes(8)
  7. QPS、TPS、并发用户数、吞吐量的关系
  8. linux 获取本机的所有IP地址
  9. python程序设计与应用第2章实验
  10. php删除表格命令,数据表格-删除
  11. Siri在苹果继续活着、蠢着、没落着,现在它最后一个创始人也走了
  12. 通过telnet自动下载cfg配置文件
  13. java工具类使用逗号切割字符串_【java】分割字符串工具类,霸气 jdk自带的
  14. LINUX双击无法启动解决一例
  15. Java8 实战系列-01-序章
  16. DockerKubernetes ❀ Kubernetes集群 - DashBoard服务(Web管理)安装部署
  17. linux中 qt安装教程视频,Linux 下QT安装教程
  18. 计算机主板供电,台式机计算机主板供电电路.doc
  19. 深圳vpay钱包系统技术开发分享
  20. 更适合运动的耳机,设计时尚轻巧好用,南卡Runner CC3上手

热门文章

  1. 【OpenCV学习笔记】【函数学习】二十(访问图像像素)
  2. python基本数据类型——整型,浮点型,复数,字符串
  3. 国产卫星高分四号(GF4)预处理(辐射定标)
  4. 结合ENVI与ArcMAP的NC数据处理(均值、最大最小值等)心得记录
  5. java继承的性质,浅谈Java三大特性之继承
  6. 实习成长之路:操作系统——CPU有哪些工作模式呢?
  7. JavaSE学习--单例设计模式
  8. Flutter之SnackBar原理详解
  9. python标准库 —— os模块
  10. 显微镜自动聚焦原理是什么_自动玻璃感应门原理是什么?看看东莞装修网怎么说...