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. SpringBoot启动项目之后,访问页面出现Whitelabel Error Page

    话说万事具备,只欠东风- 蹭闲暇时来跑个SpringBoot项目玩玩,把一切配置依赖准备就绪之后打算运行项目. Staring...... 接着,在浏览器输入地址 localhost:8080/hel ...

  2. Contest 155

    2019-09-27 22:39:24 总体感受:这次比赛心态不够好,最后导致没有很好的完成比赛. 注意点: 1)保持心态稳定,是情商的体现: 2)hard题的覆盖还是明显不够: 1201. Ugly ...

  3. RDD的Cache、Persist、Checkpoint的区别和StorageLevel存储级别划分

    为了增强容错性和高可用,避免上游RDD被重复计算的大量时间开销,Spark RDD设计了包含多种存储级别的缓存和持久化机制,主要有三个概念:Cache.Persist.Checkout. 1.存储级别 ...

  4. C# 获取基类或者接口的所有继承类方法

    static class ReflectionHelper { public static IEnumerable<T> CreateAllInstancesOf<T>() { ...

  5. WordPress 版本升级、主题升级记录

    版本升级 升级很简单,但是以防万一,先备份数据. 一.备份数据库 mysqldump -u root -p --database myblog > myblog.sql 若需要还原可执行如下操作 ...

  6. 最小生成树(次小生成树)(最小生成树不唯一) 模板:Kruskal算法和 Prim算法

    Kruskal模板:按照边权排序,开始从最小边生成树 #include<algorithm> #include<stdio.h> #include<string.h> ...

  7. Springboot 事务注解--- @Transactional

    spring boot @Transactional事物处理    spring boot 添加事物使用 @Transactional注解 简单使用 在启动类上方添加 @EnableTransacti ...

  8. coding++:mybatis 嵌套查询子查询column传多个参数描述

    mybatis 嵌套查询子查询column传多个参数如下: 2.代码示例 备注:注意,相同颜色的单词都是有关联的 <resultMap id="blogResult" typ ...

  9. HIT软件构造课程3.2总结(Designing Specificaton)

    本节转向“方法/函数/操作”如何定义 上一节是名词 这一节是动词 1.编程语言中的函数和方法 方法 使用者不需要知道方法内部如何实现,这叫做“抽象”. 参数 参数类型是否匹配,在静态检查时完成. 返回 ...

  10. VLAN基础

    VLAN(Virtual Local Area Network)的中文名为"虚拟局域网".是将一个物理的局域网在逻辑上划分成多个广播域,从而实现二层隔离的技术. 一.VLAN的优点 ...