【问题标题】:Explanation for in loop javascript循环 javascript 的解释
【发布时间】:2015-03-01 09:42:49
【问题描述】:

我无法理解这个 for in 循环的工作方式。

function createSimpleNode(name, options, text) {
         var node = document.createElement(name); 

        for (var o in options) { 
                 node.setAttribute(o, options[o]);
        }

        if (text) { 
                node.innerHTML = text;
        }

        return node; 
}

【问题讨论】:

  • For In - 只对集合进行迭代,它会将第一个类型从列表中拉出,并在下面的代码块中使用它。在 options[o] 中使用 o 永远不会设置,因为它不是集合中的索引。也许看看JavaScript Loops
  • 更新了我的答案,例如对象和数组

标签: javascript loops for-in-loop


【解决方案1】:

这是for..in loop。它遍历对象的属性(在本例中为options),并允许您在每次迭代中使用[] 运算符访问所述属性。

在您的示例中,您遍历 options 属性,并将它们全部设置为 node 的属性。

【讨论】:

    【解决方案2】:

    For in loop 提供了一种使用每个值和键迭代对象或数组的方法。

    它可以应用于objectArray

    对于一个对象

    对于一个对象,它将对象中的每个key 赋予为ITER variable. 使用此变量,您可以从对象中获取相应的值。

    var options = {a:1,b:2};
    
    for (var key in options) { 
        console.log(o,options[key]);
    }
    

    将遍历 options 对象并打印每个 key 及其值。

    a 1 //first key is a and options["a"] is 1
    b 2 //first key is a and options["b"] is 2    
    

    对于数组

    对于数组,它将数组中的每个index 赋予ITER variable. 使用此变量,您可以从数组中获取相应的元素。

    var options = ["a","b"];
    
    for (var index in options) { 
        console.log(index,options[index]);
    }
    

    将遍历options 数组并打印每个index 和给定索引上的元素。输出将是:-

    0 a //first index is a and options[0] is a
    1 b //second index is a and options[1] is b    
    

    【讨论】:

      猜你喜欢
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多