JavaScript的循环有两种,一种是for 循环,通过初始条件,结束条件和递增条件来循环执行语句块:
  var x = 0;
  var i;
  for(i=1; i <=10000; i++){
    x = x +i;

  }

分析一下for循环的控制条件:
      i=1 这是初始条件,将变量i置为1;
      i <=10000 这是判断条件,满足时就继续循环,不满足就退出循环。
      i ++ 这是每次循环后的条件,由于每次循环后变量i 都会 加1,因此它终将在若干次循环后不满足判断条件 i <=10000而退出循环。

for 循环最常用的地方是利用索引来遍历数组。
    var arr=['Apple','Google','Microsoft'];
    var i, x;
    for(i=0;i<arr.length;i++){
        x=arr[i];
        alert(x)

    }

for循环的3个条件都是可以省略的,如果没有退出循环的判断条件,就必须使用break语句退出循环,否则就是死循环:

for.......in
  for 循环的一个变体是for....in 循环,他可以把一个对象的所有属性一次循环出来。
  var o = {
    name:'Jack,
    age:20,
    city:'Beijing'
  }
  for(var key in o){
    alert(Key) //"name" "age","city"
  }

要过滤掉对象继承的属性,用hasOwnProperty()来实现:
  var o = {
    name: 'Jack',
    age: 20,
    city: 'Beijing'
  };
  for (var key in o) {
    if (o.hasOwnProperty(key)) {
        alert(key); // 'name', 'age', 'city'
    }
  }

由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,for ... in循环可以直接循环出Array的索引:
  var a = ['A','B','C'];
  for(var i in a){
      alert(i); // '0' '1' '2'
      alert(a[i]); // ‘A’,'B','C'
      注意: for ... in对Array的循环得到的是String而不是Number。
   }

Map和Set
JavaScript的默认对象表示方式{} 可以视为其语音中的Map或Dictionary 的数据结构,即一组键值对。
但是JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的。
Map 是一组键对的结构,具有极快的查找速度。
    var name =['Michael','Bob','Tracy'];
    var scores =[95,75,85];

给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,Array越长,耗时越长。
如果用Map实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢
    var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
    m.get('Michael'); // 95

初始化Map需要一个二维数组,或者直接初始化一个空Map。
    var m = new Map(); // 空Map
    m.set('Adam', 67); // 添加新的key-value
    m.set('Bob', 59);
    m.has('Adam'); // 是否存在key 'Adam': true
    m.get('Adam'); // 67
    m.delete('Adam'); // 删除key 'Adam'
    m.get('Adam'); // undefined

Set
  Set 和Map 类似,也是一个组合key的集合,但不存储value.由于key不能重复,所以,在Set中,没有重复的key。
  要创建一个Set,需要提供一个Array 作为输入,或直接创建一个空Set:
      var s1= new Set(); // 空Set
      var s2 =new Set([1,2,3]); // 含1,2,3

  重复元素在Set 中自动被过滤。
      var s= new Set([1,2,3,3,'3']);
      s: //Set{1,2,3,'3'}

  

  注意数字3和字符串'3'是不同的元素。
  通过add(key)方法可以添加元素到Set中,可以重复添加,但不会有效果:
    >>>s.add(4)
    >>>s
     {1,2,3,4}
    >>>s.add(4)
    >>>s
    {1,2,3,4}

通过delete(key)方法可以删除元素:
    var s=new Set([1,2,3])
    s://Set{1.2.3}
       s.delete(3);
       s://Set{1,2}

转载于:https://www.cnblogs.com/manxin/p/5519134.html

JavaScript(循环)相关推荐

  1. JavaScript循环结构(1)

    JavaScript循环结构语法和java和c#差不多,可以参考c#和java笔记复习

  2. Javascript循环删除数组中元素的3种方法

    本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面与微点阅读小编一起来看看详细的介绍: 问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的 ...

  3. 红色景点,纪念馆打卡拍照小程序,打卡完成任务,JavaScript 循环 i < cars.length;

    <h1>JavaScript 循环</h1><p id="demo"></p><script> var cars = [ ...

  4. JavaScript 循环中调用异步函数的三种方法,及为什么 forEach 无法工作的分析

    JavaScript 循环中调用异步函数的三种方法,及为什么 forEach 无法工作的分析 业务分析 初版的问题 解决方案 传统的 for 循环 不使用 for 循环的解决方案 分析 forEach ...

  5. JavaScript循环延时

    JavaScript循环延时 1.setTimeout 2. For 循环加 setTimeout 3. 镶嵌使用 setTimeout 1.setTimeout setTimeout 使用结构:se ...

  6. JavaScript循环打印案例

    JavaScript循环打印案例 一.打印5行5列 * 运行代码 var str = '';for (var i = 1; i <= 5; i++) {//外部控制换行for (var j = ...

  7. javascript 循环语句 while、do-while、for-in、for用法区别

    本文章介绍了在学习javascript中的循环语句的用法,包while.do-while.for-in.for它们之间的区别,也是常用的循环语句了,有需要的朋友可以了解一下 前两个唯一的差别就是循环和 ...

  8. JavaScript循环及练习

    switch( ) { case } <script type="text/javascript">switch(a=3){case 1:alert(a=1)case ...

  9. javascript循环语句及函数

    循环语句 1.While 语法: while (exp) { //statements; } 说明: while (变量<=结束值) { 需执行的代码 } 例1: var i = 1; whil ...

  10. JavaScript学习——JavaScript 循环

    JavaScript for 循环 使用for循环 <!DOCTYPE html> <html> <head> <meta charset="utf ...

最新文章

  1. 路由算法与路由协议概述
  2. VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNTION(翻译)
  3. Python3--爬取数据之911网站信息爬取
  4. CSS代码检查工具stylelint
  5. Wechat的支付逻辑流程
  6. iPhone 12 Max电池容量曝光:老扎心了
  7. python虚拟环境中安装diango_创建python虚拟环境,安装django,创建一个django项目,在项目中创建一个应用(ubuntu16.04)...
  8. iview兼容ie8_iview在ie9及以上的兼容问题解决方案__Vue.js__JavaScript__前端__iView
  9. 如何理解什么是放射?
  10. 长跑常用必知的关键字及100条跑步的建议
  11. 读赵凯华之《新概念物理教程.热学》
  12. access 微软以外 编辑_如何在 Microsoft Access 中修改查询属性
  13. Ubuntu 更改系统语言
  14. 蒙特卡罗仿真(1):入门求生指南(Python实例)
  15. 面对局域网用户滥用网络执法官,p2p终结者等网管软件的破解方法
  16. android中流媒体
  17. word文档中英文单词之间空格间距过大问题如何解决
  18. 惠普178nw芯片清零_HP打印机清零方法(冷复位恢复出厂设置)
  19. 遇到的问题记录:__init__() takes 1 positional argument but 2 were given
  20. Vue中手动导出Element表格为pdf/word/excel格式

热门文章

  1. JLINK通过SW模式下载程序的方法
  2. 想拿高新就必须知道的知识
  3. javaweb学习总结(三十)——EL函数库
  4. .NET基础 (05)内存管理和垃圾回收
  5. thinkphp3.2.2前后台公用类架构问题
  6. 推荐两个Firefox插件
  7. 将GB28181国标流转成RTSP流
  8. Linux给用户添加sudo权限
  9. jQuery中deferred对象的使用(二)
  10. xml入门简介--两天学会xml