你有几个选择:

1.顺序for循环:

var myStringArray = ["Hello","World"];

var arrayLength = myStringArray.length;

for (var i = 0; i < arrayLength; i++) {

console.log(myStringArray[i]);

//Do something

}

优点适用于各种环境

您可以使用break和continue流控制语句

缺点太冗长了

势在必行

2. Array.prototype.forEach

ES5规范。介绍了很多非常有用的数组方法,其中之一,Array.prototype.forEach它给了我们一个非常简短的迭代数组的方法:array.forEach(function (item, index) {

console.log(item, index);});

在编写ES5规范的时候差不多9年了。发布时间(2009年12月),它已经被桌面,服务器和移动环境中的几乎所有现代引擎实现,因此使用它们是安全的。

使用ES6箭头函数语法,它更简洁:array.forEach(item => console.log(item));

箭头功能也正在广泛实施,除非您计划支持非常旧的平台(例如IE11),您也可以安全使用。

优点非常短暂和娴熟。

陈述

缺点不能用break/continue

通常,您可以break通过在迭代数组元素之前过滤数组元素来替换超出命令循环的需要,例如:array.filter(item => item.condition

.forEach(item => console.log(item))

请记住,如果您正在迭代一个数组以从中构建另一个数组,那么您应该使用map,我已经多次看到过这种反模式。

3. ES6 for-of声明

ES6标准引入了可迭代对象的概念,并定义了一个用于遍历数据的新构造,即for...of语句。

此语句适用于任何类型的可迭代对象以及生成器。

根据定义,数组对象是ES6中内置的可迭代对象,因此您可以对它们使用此语句:let colors = ['red', 'green', 'blue'];for (const color of colors){

console.log(color);}

优点可以迭代各种各样的对象。

可以使用正常的流量控制语句(break/ continue)。

用于迭代串行异步值。

缺点如果您要定位旧浏览器,则转换后的输出可能会让您感到惊讶。

不使用 for...in

@zipcodeman建议使用该for...in语句,但是对于迭代数组for-in应该避免,该语句用于枚举对象属性。

它不应该用于类似数组的对象,因为:不保证迭代的顺序,可能无法按数字顺序访问数组索引。

还枚举了继承的属性。

第二点是它可以给你很多问题,例如,如果你扩展Array.prototype对象以包含一个方法,那么该属性也将被枚举。

例如:

Array.prototype.foo = "foo!";

var array = ['a', 'b', 'c'];

for (var i in array) {

console.log(array[i]);

}

上面的代码将控制“a”,“b”,“c”和“foo!”。

如果你使用一些严重依赖原生原型增强的库(例如MooTools),这尤其成问题。

for-in我前面说过的语句是枚举对象属性,例如:

var obj = {

"a": 1,

"b": 2,

"c": 3

};

for (var prop in obj) {

if (obj.hasOwnProperty(prop)) {

// or if (Object.prototype.hasOwnProperty.call(obj,prop)) for safety...

console.log("prop: " + prop + " value: " + obj[prop])

}

}

在上面的示例中,该hasOwnProperty方法允许您仅枚举自己的属性,即它,只有对象物理上具有的属性,没有继承的属性。

我建议你阅读以下文章:

js 数组遍历符合条件跳出循环体_在JavaScript中循环遍历数组相关推荐

  1. js 数组遍历符合条件跳出循环体_C++模拟面试:从数组“紧凑”操作说开来

    面试官 自来也 去掉一个字符串中的空格. 假设用C语言来解答,字符串是char数组.O(n)时间复杂度实现不难,比如额外申请一个新数组,然后遍历一遍字符串,将符合条件的字符存储到新数组中,实现起来很简 ...

  2. js 数组遍历符合条件跳出循环体_Js数组遍历方法对比总结

    引言: ES6为javascript为数组遍历提供了新的一种方式: for....of.....那之前的遍历方法各存在哪些缺点?for...of...有什么好处?接下来,我们先回顾一下有多少种方式. ...

  3. js 数组遍历符合条件跳出循环体_Javascript数组循环遍历之forEach详解

    1.js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i除此之外,也可以使用较简便的forEach 方式 2.forEach函数. Firefox 和Chrome 的Arra ...

  4. js 数组遍历符合条件跳出循环体_JavaScript跳出forEach循环

    JavaScript提供了forEach用于遍历数组.但使用forEach做迭代时有一个问题,它不允许在遍历完所有元素之前终止循环跳出,即不能使用break语句.即使是在函数里使用return fal ...

  5. 中的枚举属性函数_对于 JavaScript 中循环之间的技术差异分析

    在 JavaScript 中使用循环时,需要理解两个关键点:可枚举的属性和可迭代的对象. 可枚举的属性 可枚举对象的一个定义特征是,当通过赋值操作符向对象分配属性时,我们将内部 enumerable ...

  6. js数组循环符合条件跳出循环体(for、forEach、some、every)

    1,for循环 for(var i=0;i<10;i++){ console.log(i)if(i==3){break;} } 输出结果为0 1 2 3 此处用break可跳出for循环,如果f ...

  7. java list移除符合条件的元素_从List中移除指定 List 中包含的其所有元素(可选操作)。...

    从List中移除指定 List 中包含的其所有元素,这个当然用List里面的removeAll方法了,但是有朋友说能不能不用removeAll呀 于是我就写了如下代码: List l = ...; L ...

  8. 如何在JavaScript中循环遍历JSON响应

    从远程服务器获取数据时,服务器的响应通常为JSON格式.在本文中,我将演示如何使用JavaScript解析服务器的响应,以便访问所需的数据.该过程通常包括两个步骤:将数据解码为本机结构(例如数组或对象 ...

  9. 如何在JavaScript中循环遍历JSON响应?

    从远程服务器获取数据时,服务器的响应通常为JSON格式.在本文中,我将演示如何使用JavaScript解析服务器的响应,以便访问所需的数据.该过程通常包括两个步骤:将数据解码为本机结构(例如数组或对象 ...

最新文章

  1. [Go]结构体及其方法
  2. 低复杂度 - 服务网格的下一站
  3. mysql触发器执行失败_mysql-Mysql数据库触发器执行不成功
  4. boost::gregorian模块实现打印假期的测试程序
  5. 1037. 在霍格沃茨找零钱(20)
  6. css-背景图片和渐变
  7. 终于找到中文版JDK1.8-API了~
  8. [leetcode]1.Two Sum
  9. 1059 C语言竞赛 (ID映射编号映射字符串)
  10. 极客先锋 如何生成git的公钥和私钥
  11. 面试题46. 把数字翻译成字符串
  12. POJ1521 LA2088 HDU1053 ZOJ1117 Entropy【哈夫曼编码】
  13. swf文件数据格式分析
  14. 计算机怎么格式化硬盘,如何格式化硬盘
  15. 高并发高可用高性能的解决方案
  16. elasticsearch使用中文分词器和拼音分词器,自定义分词器
  17. 盒子模型与PS基本操作
  18. 基于微信视频直播如何做收费直播(微信公众号直播)?
  19. 12.Numpy数值计算
  20. 回望我的2019:35岁的程序员,没想到找工作这么难!

热门文章

  1. 【券商报告】汽车行业深度报告:新能源高速发展,热管理迎产业春风——附下载链接
  2. 企业为什么一定要用DevOps
  3. 致远小场景方案之表单获取ERP基础档案数据
  4. 神卓ITG智能组网之ITG 账号创建篇(二)
  5. C++20终于要来了...
  6. CPI与PPI剪刀差是什么意思||底层逻辑
  7. C# 给Word中的字符添加强调符号(着重号)
  8. Java-BufferedImage动态生成一个表格图片
  9. 键盘记录工具的制作 qq密码键盘记录器
  10. unity使用Socket与HTTP连接服务器传输数据包