我们在学习js中遍历数组的有两种方式

代码:

var array=['a']

//标准的for循环

for(var i=1;i

alert(array[i])

}

//foreach循环

for(var i in array){

alert(array[i])

}

正常情况下上面两种遍历数组的方式结果一样。首先说两者的第一个区别

标准的for循环中的i是number类型,表示的是数组的下标,但是foreach循环中的i表示的是数组的key是string类型,因为js中一切皆为对象。自己试试 alert(typeof i);这个区别是小问题。现在我加上如下代码,上面的执行结果就不一样了。

代码

//扩展了js原生的Array

Array.prototype.test=function()

}

我们发现标准的for循环任然真正的对数组循环, 但是此时foreach循环对我刚才写的test方法写打印出来了。这就是for与foreach遍历数组的最大区别,如果我们在项目采用的是用foreach遍历数组,假设有一天谁不小心自己为了扩展js原生的Array类,或者引入一个外部的js框架也扩展了原生Array。

建议

1.不要用for in遍历数组,全部统一采用标准的for循环变量数组(我们无法保证我们引入的js是否会采用prototype扩展原生的Array)

2.如果要对js的原生类扩展的时候,不要采用prototype了

遍历 in java_Java script数组遍历for与for in的区别相关推荐

  1. PHP用数组遍历新闻列表,php数组遍历_php

    1, B=>1, C=>1, D=>1); foreach($array as $key => $value){ if($key == B){ $array[A] = CHAN ...

  2. 遍历map java_Java中怎么遍历map中value值

    展开全部 遍历map中value大致有四种方法,具体每种方法的代码和解释如下:32313133353236313431303231363533e59b9ee7ad9431333365656630Map ...

  3. JS遍历(循环)——JS对象遍历(循环)JS数组遍历(循环)

    最近在处理一些偏逻辑的代码块经常遇到遍历问题,接下来跟大家一起温习一下有关于JS的遍历吧. js数组遍历 1.for循环 //不缓存 var arr = [5,2,0,1,3,1,4]; for ( ...

  4. javascript数组遍历

    数组遍历 最早的数组遍历方式 var a = ["a","b","c"]; for(var index = 0 ;index < a. ...

  5. 遍历JavaScript中的数组

    在Java中,可以使用for循环遍历数组中的对象,如下所示: String[] myStringArray = {"Hello", "World"}; for ...

  6. PHP酒店管理demo案例(数组遍历)

    PHP酒店管理demo案例(数组遍历) 目录 PHP酒店管理demo案例(数组遍历) PHP酒店管理前台编码: PHP酒店管理后台编码: 执行效果: 点击入住测试: 退房测试: 源码地址: PHP酒店 ...

  7. react版数组遍历

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

  8. javascript——数组、数组遍历、forEach、增加删除元素

    数组(Array) 数组也是一个对象,它和普通对象的功能类似,也是用来存储数据的:不同的是普通对象是使用字符串作为属性名的,而数组是使用数字来作为索引操作元素的 对象中是用属性,数组中用索引 索引:数 ...

  9. 数据类型_array_es6新增的数组遍历方法

    数组遍历 [1]map方法 [2]filter方法 [3]forEach方法 [4]some方法 [5]every方法 [6]findIndex方法 [7]includes方法 [8]reduce方法 ...

最新文章

  1. 对我国6G早期研究布局的几点建议
  2. 【转】ubuntu 下安装mongodb php 拓展的方法
  3. Windows下mysql忘记密码的解决方法
  4. 揪出XXL-JOB中的细节
  5. 第一章:认识Redhat Linux
  6. Java笔记-解决读取文件时中文乱码问题(InputStreamReader设置编码)
  7. Nexus 3.X(Maven仓库私服)仓库迁移与备份
  8. JavaScript-封装与继承(两种)
  9. 【Sql查询数据】for 日、月、年
  10. 简单理解RocketMQ---入门
  11. 从ISO 文件制作U盘启动盘.
  12. java proj4j 兰勃特投影设置地球半径 (+R )无效问题
  13. ARP防火墙单机个人版 “此版本已过期,请下载最新版”
  14. sql字符串转时间-日期区间查询
  15. openjdk windows版本下载地址
  16. macbook air 重置mysql密码
  17. TIA博途中如何访问不同IP网段的PLC以及不同IP网段的PLC如何通信?
  18. centos7启动服务uthorization not available. Check if polkit service is running or see debug message for
  19. Warning: Function components cannot be given refs
  20. python web前端后端页面详解

热门文章

  1. 文本分类的目的和分类的方法
  2. Mongodb的索引操作
  3. 网络工程师_记录的一些真题_2018上半年上午
  4. 过年也学(nei)习 (juan)| 图像特征提取与匹配技术
  5. 如何让黑白图片恢复“生机”
  6. 4个可以写进简历的京东 NLP 项目实战
  7. 对象检测和图像分割有什么区别?
  8. Symfony 使用 hwi/oauth-bundle 实现第三方登录
  9. 浅析Kubernetes StatefulSet
  10. (一)检测浏览器是否支持websocket