JavaScript中利用for循环遍历数组

作者:浪迹灬天涯 时间:2024-03-17 02:21:54 

先看一段代码


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

<script>
 // 一个普通的数组  
 var arr =[3,5,2,6];
 // 普通的for 循环遍历
 for(var i = 0 ; i < arr.length; i++){
  console.log(i,"类型:"+typeof i,arr[i]);
 }
 // 用for in 遍历数组
 for(var k in arr){
  console.log(k,"类型:"+typeof k,arr[k]);
 }
</script>
</body>
</html>

这段代码显示出了 一点 for循环遍历数组 和for in 循环遍历 数组的一点区别:

JavaScript中利用for循环遍历数组

标准的for循环中的i是number类型,表示的是数组的下标,但是foreach循环中的i表示的是数组的key是string类型。

这还不是坑,只是一点区别。

再看一段代码


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

<script>
 // 一个普通的数组  
 var arr =[3,5,2,6];
 // 在数组原型上扩展一个方法
 Array.prototype.extend = function(){
  console.log("在数组原型扩展一个方法");
 }
 // 普通的for 循环遍历
 for(var i = 0 ; i < arr.length; i++){
  console.log(i,"类型:"+typeof i,arr[i]);
 }
 // 用for in 遍历数组
 for(var k in arr){
  console.log(k,"类型:"+typeof k,arr[k]);
 }
</script>
</body>
</html>

这段代码就是在上边的代码的基础上,为Array做了一下扩充。很简单,只是添加了一个函数。但是我们来看运行会出现了什么情况:

JavaScript中利用for循环遍历数组

输出的结果中,多出了一行,这一行就是我们扩展的一个函数,不是我们定义在数组中的值。到此这个问题就出来了。

综上所述,用for...in...在通常情况下确实可以正确运行。

但是如果我们在项目采用的是用foreach遍历数组,假设有一天谁不小心自己为了扩展js原生的Array类,或者引入一个外部的js框架也扩展了原生Array。那问题就来了。

 所以最好还是用for循环遍历数组

标签:js,for,遍历数组
0
投稿

猜你喜欢

  • 利用Python进行数据可视化常见的9种方法!超实用!

    2021-10-05 23:11:58
  • Python查找最长不包含重复字符的子字符串算法示例

    2021-05-25 23:05:02
  • MySQL学习之数据库操作DML详解小白篇

    2024-01-14 11:59:48
  • PHP中使用cURL实现Get和Post请求的方法

    2023-08-18 13:15:35
  • JavaScript的replace方法与正则表达式结合应用讲解

    2008-03-06 21:37:00
  • 可以让程序告诉我详细的页面错误和数据库连接错误吗?

    2009-11-01 18:01:00
  • pyspark给dataframe增加新的一列的实现示例

    2022-06-13 20:00:19
  • python opencv之SURF算法示例

    2021-03-06 13:10:28
  • 鼠标双击滚动屏幕单击停止代码

    2008-02-21 11:44:00
  • python生成指定长度的随机数密码

    2021-01-24 23:53:17
  • ASP生成数字相加求和的BMP图片验证码

    2011-04-14 10:48:00
  • MySQL命令无法输入中文问题的解决方式

    2024-01-15 19:29:54
  • python脚本监控Tomcat服务器的方法

    2023-10-03 18:19:23
  • 基于Python执行dos命令并获取输出的结果

    2021-01-23 14:26:53
  • 在linux下实现 python 监控usb设备信号

    2022-04-18 15:29:24
  • WEB前端开发经验总结之实战篇

    2008-06-12 12:49:00
  • Python @property装饰器原理解析

    2022-02-19 20:28:05
  • JS基于封装函数实现的表格分页完整示例

    2024-04-25 13:15:12
  • 详解Python中open()函数指定文件打开方式的用法

    2022-12-07 10:22:11
  • Python 函数绘图及函数图像微分与积分

    2021-07-13 22:53:14
  • asp之家 网络编程 m.aspxhome.com