如何基于值迭代对象数组,而不是键?

时间:2014-10-22 00:31:32

标签: javascript jquery arrays json

我知道我可以迭代一个对象数组并使用该键来检查值。但有没有办法通过查看值来检查密钥?我使用jQuery虽然我认为这只是一个javascript问题。

var j = [
    {hello : 1},
    {hello : 2},
    {bye : 3}
]


$.each(j, function(i,item){
    if(item.hello==1) alert("hello");
});

如何使警报依赖于值1,而不管它是什么键?

4 个答案:

答案 0 :(得分:1)

您必须遍历数组中的每个键,如下所示:

$.each(j, function(i,item){
    for (var key in item) {
         if (item[key]==1) {
             alert("it said hello");
         }
    }
});

但为什么不将它存储在其他格式中,如果您想如何使用它?即,

var j = [
    [hello, 1],
    [hello, 2],
    [bye, 3]
]

答案 1 :(得分:1)

ECMAScript 6中提出了for-of循环。

for (item of j){
    if(item.hello==1){
         alert("it said hello");
    }
}

此功能出现在Firefox 31中,并随Chrome 38一起提供.IE不会实现它。不了解其他浏览器。

答案 2 :(得分:1)

尝试

var j = [
    {hello : 1},
    {hello : 2},
    {bye : 3}
];
$.each(j, function(i, item){;
    $.each(item, function(key, value) {
      if (value === 1) {
        alert("it said hello")
      }
    })
});

答案 3 :(得分:0)

例如:

var j = [ {hello : 1}, {hello : 2}, {bye : 3} ];
for (var i in j)
{
    for  (var s in j[i])
    {
        if (j[i][s] == 1)
        {
            alert("it said hello");
        }
    }
}