java script 遍历数组_遍历数组中的元素(含es6方法)

本文探讨了JavaScript中从传统for循环到ES6 for-of方法遍历数组的不同方式,重点比较了forEach、for-in与for-of的优缺点,特别强调了for-of方法的简洁性和避免字符串运算错误。

假如有这样一个数组。arr = [12,34,45,46,36,58,36,59],现在要遍历该数组。

方法1:以前我们可能会这样做:

for(var i=0;i

console.log(arr[i]+"\n")

}

方法2:自ES5发布后,我们可以使用内置的forEach方法来遍历数组。

arr.forEach(function(val){

console.log(val+"\n")

})

这段代码看起来简单,然而有些缺陷,就是不能使用break语句中断循环,也不能使用return语句返回到外层函数。

方法3:于是我们很容易想到使用for-in来遍历数组

for(var index in arr){

console.log(arr[index]+"\n")

}

然而这样也会有一点问题,在这段代码中,赋给 index 的值不是实际的数字,而是字符串“0”、 “1”、 “2”,此时很可能在无意之间进行字符串算数计算,例如:“2”+1==“21”,这给编码带来极大的不便。还有,在某些情况下,这段代码可能按照随机顺序遍历数组元素。

方法4:下面我的ES6方法登场了,就是使用for-of方法。

for(var val of arr){

console.log(val+"\n")

}

是不是很简洁,而且也不存在上述方法那样的缺陷。

将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件

将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件import java.io.File;import java.io.FileOutputStre ...

js向一个数组中插入元素的几个方法-性能比较

向一个数组中插入元素是平时很常见的一件事情.你可以使用push在数组尾部插入元素,可以用unshift在数组头部插入元素,也可以用splice在数组中间插入元素. 但是这些已知的方法,并不意味着没有更 ...

[ActionScript 3.0] 对数组中的元素进行排序Array.sort()的方法

对数组中的元素进行排序. 此方法按 Unicode 值排序. (ASCII 是 Unicode 的一个子集.) 默认情况下,Array.sort()按以下方式进行排序: 1. 排序区分大小写(Z优先于 ...

PHP从数组中删除元素的方法

PHP从数组中删除元素的方法 本篇文章主要介绍了PHP从数组中删除元素的四种方法实例 删除一个元素,且保持原有索引不变 使用 unset 函数,示例如下: 1 2 3 4 5 <?php   $ ...

PHP从数组中删除元素的四种方法实例

PHP从数组中删除元素的四种方法实例 一.总结 一句话总结:unset(),array_splice(),array_diff(),array_diff_key() 二.PHP从数组中删除元素的四种方 ...

PHP实现查询两个数组中不同元素的方法

以下实例讲述了PHP实现查询两个数组中不同元素的方法.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

Java比较两个数组中的元素是否相同的最简单方法

import java.util.Arrays; public class Test { /** * Java比较两个数组中的元素是否相同 */ public static void main(Str ...

随机推荐

PHP&lowbar;&dollar;&lowbar;SERVER&lowbar;说明详解

PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用. $_SERVER['PHP_SELF'] #当前正在执行 脚本的文件名,与 document roo ...

c&num; winform 全角自动转化半角问题(C&num;中ImeMode的值):转载

调用 this.ImeMode = ImeMode.OnHalf; ImeMode 枚举:指定一个值,该值是用来确定在选定了对象时该对象的输入法编辑器 (IME) 的状态. 以下是微软的解释: 成员名 ...

34、Shiro框架入门三,角色管理

//首先这里是java代码,就是根据shiro-role.ini配置文件中的信息来得到role与用户信息的对应关系//从而来管理rolepublic class TestShiroRoleTest e ...

tostring格式化输出

C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...

Oracle 游标使用&lpar;转)

这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 ; ; dbms_output.put_line(sql) loop dbms_output.put_line( ; ; ; r_te ...

显示器 Linux 性能 18 &lpar;一个命令行工具传递&rpar;

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy.基于此原因. ...

Intellij Idea自动加载改动文件和自动自动热部署加载

1:准备原料 我的Intellij Idea的版本是15. 之后tomcat自动加载修,你只需要在浏览器刷新一下页面即可. ************************************** ...

执行Runtime&period;exec&lpar;&rpar;需要注意的陷阱

作为Java语言的一部分.java.lang包被隐藏的导入到每一个Java程序.这个包的表面陷阱,经常影响到大多数程序员.这个月,我将讨论运行时exec()方法时的潜伏陷阱. 陷阱4:当运行exec( ...

EC20指令测试

cat /dev/ttyUSB2 & echo -e "AT+CGMM\r\n" >/dev/ttyUSB2   //输出模块型号 echo -e "AT+ ...

ABP之事件总线&lpar;3&rpar;

承接上一篇时间总线的学习,在上一篇中我们实现了取消显式注册事件的方式,采用使用反射的方式.这样的好处可以解除Publisher和Scriber的显式依赖,但是问题又来了,因为我们只有Publisher ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值