1

我的应用程序中有一个数组(它是一个代码编辑器),如下所示:

var ar =[
         {
           keyword:[
                    {
                     values:['if','else','endif'],
                     style:'vcm-keyword'
                    }
                   ]
         },
         {
           operator:[
                     {
                      values:['==','!=','<','>' ],
                      style:'vcm-operator'
                     }
                    ]
         }
       ];

这个数组被传递给一个 jQuery 插件。
现在我想遍历数组并获取值。这里有趣的是数组是动态的。意思是,我不知道什么类型的键[在上面的数组keywordoperator] 将在数组中。

我们的编辑器正在开发以支持所有类型的编程语言。所以我可能无法知道上述数组中的键类型。那么,如果数组的键名未知,如何循环遍历数组。

从字面上看,这就是我想要在插件中做的事情:

var values = arr[0].[+key+].values,
    style = arr[0].[+key+].style;

注意:我不知道我的假设是对还是错。感谢任何建议/替代方案。

4

3 回答 3

7

您可以使用该for..in构造来循环对象(或数组)中的键,例如:

for(var key in obj) {
    console.log(key, obj[key]);
}

您可能还想调用hasOwnProperty()以获得良好的度量,例如:

for(var key in obj) {
    if (obj.hasOwnProperty(key)) console.log(key, obj[key]);
}

这会阻止您向下迭代原型链等。

于 2013-10-08T10:38:30.567 回答
1

采用

$(ar).each(function() {

});

参考:http ://api.jquery.com/jQuery.each/

于 2013-10-08T10:38:02.893 回答
1

也许你可以使用

foreach

陈述?

于 2013-10-08T10:39:56.177 回答