for循环,for…in循环,forEach循环的区别
for循环
通关for循环,生成所有的索引下标
for(var i = 0 ; i <= arr.length-1 ; i++){ 程序内容 }
来执行循环。

forEach循环
数组.forEach(function(形参1,形参2,形参3){})
形参1: 存储的是当前循环次数时,获取的单元数据
形参2.储存的是当前循环次数时,获取的单元索引下标
形参3.储存的是原始数组
三个参数不一定全部定义,看实际项目要求
forEach() 只能循环遍历数组,不能循环遍历对象

forEach() 专门针对数组的循环遍历

for…in
for(var 自定义变量 in 数组){程序}
会将 数组的索引下标,存储在自定义变量中
通过自定义变量存储的索引,来获取数组的单元数据信息
自定义变量 : 存储 数组单元索引
存储的索引的数据类型是字符串类型
需要转化为数值类型

只能获取索引,别的不能获取
数组,对象都可以使用的循环

for循环 和 forEach循环,
只能定义或者储存索引下标 获取数据要求通过索引下标 来获取数据

forEach循环

可以定义参数1直接储存 数据单元数据 不需要通过索引下标来获取

可以定义参数2直接储存 数组单元的索引

具体分析
for循环和forEach循环 生成序号 直接循环变量i +1 或者形参 key+1
for…in循环 自定义key中储存是字符串,必须转化为数值类型 在加+1
parselnt(key)+1
for循环和for…in循环 都是通过 索引下标来获取 二维数组
arr[i] arr[key]
forEach循环 通过自身定义的形参来储存二维数组
val
生成单元格
for循环 和for…in循环 都是通过索引下标方式 获取二维数组
arr[i] [j] arr[key][k]
forEach循环 通过自生定义形参储存的二维数组单元数据
v

代码如下

for循环
<script>
var arr = [3,2123,12,23,1,321,213];

for(var i = 0 ; i <= arr.length-1 -1 ; i++){
var min = i;
for(var j = i+1 ; j <= arr.length-1 ; j++){
if(arr[min] > arr[j] ){
min = j;
}
}

if(min != i){
var m = 0;
m = arr[min];
arr[min] = arr[i];
arr[i] = m;
}
}

console.log(arr);

</script>

forEach
setTab();

function setTab(){
var str = '';
arr.forEach(function(val , key){
str += '<tr>';
str += `<td>${key+1}</td>`;
val.forEach(function(v){
str += `<td>${v}</td>`;
})
str += '</tr>';
})

tb.innerHTML = str;

for in循环
setTab();

function setTab(){
var str = '';
// 这里的key的作用,就是相当于for循环中的i
for(var key in arr){ // key 存储一维索引 arr[key] 索引对应的二维数组
str += '<tr>';
str += `<td>${ parseInt(key) +1}</td>`; // key是字符串类型,执行加法是拼接操作, parseInt(key) 获取整数部分,转化为数值类型

for(var k in arr[key]){ // 这里的k的作用就相当于 for循环中的j
str += `<td>${arr[key][k]}</td>`; // arr[key][k] 二维数组的索引
}

str += '</tr>';
}

tb.innerHTML = str;
}

逆战班

for循环,for…in循环,forEach循环的区别的更多相关文章

  1. Java语法糖1:可变长度参数以及foreach循环原理

    语法糖 接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的 ...

  2. For-Each循环

    For-Each循环也叫增强型的for循环,或者叫foreach循环. For-Each循环是JDK5.0的新特性(其他新特性比如泛型.自动装箱等). For-Each循环的加入简化了集合的遍历. 语 ...

  3. 增强for循环 -- foreach循环

    1  作用 简化迭代器的书写格式.(注意:foreach循环的底层还是使用了迭代器遍历.) 2  适用范围 如果是实现了Iterable接口的对象或者是数组对象都可以使用foreach循环. 3  格 ...

  4. 可变长度参数以及foreach循环原理

    语法糖 接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的 ...

  5. java语法糖:(1)可变长度参数以及foreach循环原理

    语法糖 语法糖:是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这些语法做一些处理,开发者就可以直接方便地使用 ...

  6. 教你如何使用零代码开发的Foreach循环功能代替for循环

    使用技巧:Foreach循环功能! 项目中为了避免将同样的语句重复写很多次,相信大家在编程过程中肯定用过循环语句.其中For循环作为基础中的基础,大家一定不会陌生.不过今天小V要讲的可不是For循环, ...

  7. JAVA中的for-each循环与迭代

    在学习java中的collection时注意到,collection层次的根接口Collection实现了Iterable<T>接口(位于java.lang包中),实现这个接口允许对象成为 ...

  8. foreach循环 Java

    第一次遇到foreach循环,是在PHP的数组中,同样,在Java数组中,也遇到了foreach循环,都是用来遍历数组(集合).遍历数组,首先想到的一般都是用while,do while,for循环, ...

  9. 集合框架遍历方式之——for-each循环

    从Java5起,在Java中有了for-each循环,可以用来循环遍历collection和array.Foreach循环允许你在无需保持传统for循环中的索引,或在使用iterator /ListI ...

  10. 巧用array_map()和array_reduce()替代foreach循环

    1.array_reduce( $arr , callable $callback ) 使用回调函数迭代地将数组简化为单一的值. 其中$arr 为输入数组,$callback($result , $v ...

随机推荐

  1. 将SublimeText加入右键菜单

    将SublimeText加入右键菜单 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\SublimeText] @=&q ...

  2. QQ小程序支付

    QQ小程序支付 Java后端 同学折腾QQ小程序的支付折腾了好几天,没有完成统一下单,因为我做过微信和支付宝支付,他就让我帮忙搞 我搞了好两三个小时,也没搞出来,最终我觉得问题在商户key那里,问了几 ...

  3. 记录一次线上bug

    记录一次线上bug,总的来说就是弱网和重复点击.特殊值校验的问题. 测试场景一:        在3g网络或者使页面加载速度需要两秒左右的时候,输入学号,提交学生的缴费项目,提交完一个 学生的缴费后, ...

  4. NDCG的理解

    2019-05-29 14:15:44

  5. innobackupex备份过程(有图有真相)

    innobackupex命令构成: 1. Innobackupex内部封装了xtrabackup和mysqldump命令: 2. Xtrabackup是用来备份innoDB表的,内部实现对innoDB ...

  6. web样式css

    css样式 什么是css 层叠样式表(Cascading Style Sheets),是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. ...

  7. war 和 war exploded

    IDEA 开发项目时,部署 tomcat 的 Deployment 选项出现: war 模式 可以称之为发布模式.先将 WEB 工程打成 war 包,然后再将其上传到服务器进行发布. war expl ...

  8. nginx 报 502 bad gateway 分析解决

    出现nginx 502 bad gateway 问题,先从nginx端日志入手,分析排查原因. 1.排查问题 首先需要打开nginx错误日志. 编辑nginx.conf,默认路径在/usr/local ...

  9. Mac word文档的消失问题以及解决方案

    最近用mac电脑上的Microsoft Word写文档时,出现一个很奇怪的现象:明明我已经保存了文档到某个目录下,但是当我退出Word后,准备去保存目录找文档时发现文档消失了,前一秒还在!!! 通过各 ...

  10. Matlab GUI设计(2)

    11. (1)界面设计 (2)添加按钮的回调函数 function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle ...