循环中的Javascript解释

3

我对这个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; 
}

1
For In - 迭代集合,它将从列表中提取第一个类型并在以下代码块中使用它。 在 options[o] 中使用 o 永远不会被设置,因为它不是集合中的索引。 也许可以查看 JavaScript 循环 - juanvan
更新了我的答案,提供了对象和数组的示例。 - Mritunjay
2个回答

5
For in循环提供了一种遍历对象或数组中每个值和键的方法。
它可以应用于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变量。使用这个变量,您可以从数组中获取相应的元素。

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    

1

这是一个for..in循环。它遍历对象的属性(在本例中为options),并允许您在每次迭代中使用[]操作符访问该属性。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接