JavaScript中利用for循环遍历数组

发布时间 - 2026-01-10 22:32:14    点击率:

先看一段代码

<!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 循环遍历 数组的一点区别:

标准的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做了一下扩充。很简单,只是添加了一个函数。但是我们来看运行会出现了什么情况:

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

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js遍历数组  # js  # for循环遍历数组  # Javascript技巧之不要用for in语句对数组进行遍历  # js数组循环遍历数组内所有元素的方法  # Javascript数组循环遍历之forEach详解  # JS实现遍历不规则多维数组的方法  # JS中循环遍历数组的四种方式总结  # JavaScript 数组遍历的五种方法  # JavaScript中数组遍历方法合集大全  # 遍历  # 的是  # 这段  # 一个普通  # 一个函数  # 是在  # 来了  # 出了  # 基础上  # 这个问题  # 很简单  # 再看  # 到此  # 多出  # 这还  # 先看  # 大家多多  # 谁不  # 这一行  # 出现了 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 香港服务器网站卡顿?如何解决网络延迟与负载问题?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  Laravel如何升级到最新版本?(升级指南和步骤)  如何快速搭建高效香港服务器网站?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  如何快速搭建自助建站会员专属系统?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  中国移动官方网站首页入口 中国移动官网网页登录  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel PHP版本要求一览_Laravel各版本环境要求对照  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  java获取注册ip实例  Internet Explorer官网直接进入 IE浏览器在线体验版网址  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  如何基于云服务器快速搭建网站及云盘系统?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel如何优化应用性能?(缓存和优化命令)  如何在万网主机上快速搭建网站?  Python并发异常传播_错误处理解析【教程】  香港服务器选型指南:免备案配置与高效建站方案解析  如何彻底删除建站之星生成的Banner?  电商网站制作价格怎么算,网上拍卖流程以及规则?  JavaScript模板引擎Template.js使用详解  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  ,南京靠谱的征婚网站?  如何快速搭建支持数据库操作的智能建站平台?  如何快速查询网站的真实建站时间?  利用vue写todolist单页应用  linux top下的 minerd 木马清除方法  Laravel Docker环境搭建教程_Laravel Sail使用指南  QQ浏览器网页版登录入口 个人中心在线进入  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  网站制作企业,网站的banner和导航栏是指什么?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Laravel怎么连接多个数据库_Laravel多数据库连接配置  BootStrap整体框架之基础布局组件  如何快速搭建虚拟主机网站?新手必看指南  三星网站视频制作教程下载,三星w23网页如何全屏?  javascript读取文本节点方法小结  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例