• javascript iterator


    for each...in

    使用一个变量迭代一个对象的所有属性值,对于每一个属性值,有一个指定的语句块被执行.

    Syntax:

    for each (variable in object) {
      statement
    }
    variable
    用来遍历属性值的变量,前面的var关键字是可选的.该变量是函数的局部变量而不是语句块的局部变量.
    object
    该对象的属性值会被遍历.
    statement
    遍历属性值时执行的语句. 如果想要行多条语句, 请用({ ... }) 将多条语句括住.

    Examples:

    下面的代码片段演示如何遍历一个对象的属性值, 并计算它们的和:

    var sum = 0;
    var obj = {prop1: 5, prop2: 13, prop3: 8};
    
    for each (var item in obj) {
      sum += item;
    }
    
    print(sum); // 输出"26",也就是5+13+8的值

    警告:永远不要使用for each...in语句遍历数组,仅用来遍历常规对象

    for in

    for...in语句以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。

    Syntax:

    for (variable in object) {...}
    variable
    在每次迭代时,将不同的属性名分配给变量
    object
    被迭代枚举其属性的对象。

    for...in 循环只遍历可枚举属性。像 ArrayObject使用内置构造函数所创建的对象都会继承自Object.prototypeString.prototype的不可枚举属性,例如 String 的 indexOf()  方法或 ObjecttoString()方法。循环将遍历对象本身的所有可枚举属性,以及对象从其构造函数原型中继承的属性(更接近原型链中对象的属性覆盖原型属性)。

    Examples:

    下面的函数接受一个对象作为参数。被调用时迭代传入对象的所有可枚举属性然后返回一个所有属性名和其对应值的字符串。

     1 var obj = {a:1, b:2, c:3};
     2     
     3 for (var prop in obj) {
     4   console.log("obj." + prop + " = " + obj[prop]);
     5 }
     6 
     7 // Output:
     8 // "obj.a = 1"
     9 // "obj.b = 2"
    10 // "obj.c = 3"

     for of

    for...of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句

    Syntax:

    1 for (variable of iterable) {
    2     //statements
    3 }

    variable

      在每次迭代中,将不同属性的值分配给变量。

    iterable

      被迭代枚举其属性的对象。

    Example:

    1 let iterable = [10, 20, 30];
    2 
    3 for (let value of iterable) {
    4     value += 1;
    5     console.log(value);
    6 }
    7 // 11
    8 // 21
    9 // 31

    参考:MDN

  • 相关阅读:
    第七周作业
    第六周作业
    第六周上机练习
    jsp第七周
    Android数据跳转
    第九周上机练习
    第七周上机作业
    IE7 正式发布版不支持offsetheight,clientheight,scrollheight属性
    Build your own UpdateProgress panel
    Treeview控件如何在asp.net ajax中使用小技巧
  • 原文地址:https://www.cnblogs.com/hzhqiang/p/9928003.html
Copyright © 2020-2023  润新知