动态循环遍历密钥未知的javascript数组

时间:2013-10-08 10:36:21

标签: javascript jquery html

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

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;

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

3 个答案:

答案 0 :(得分:4)

您可以使用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]);
}

这会阻止你迭代原型链等。

答案 1 :(得分:1)

使用

$(ar).each(function() {

});

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

答案 2 :(得分:1)

也许你可以使用

foreach

语句?