簡體   English   中英

如何基於值而不是鍵迭代對象數組?

[英]how to iterate over object array based on values, not key?

我知道我可以遍歷對象數組並通過使用鍵檢查值。 但是,有沒有一種方法可以通過查看值來檢查密鑰? 我使用jQuery,盡管我認為這只是一個JavaScript問題。

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


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

我如何使警報取決於值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]
]

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

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

此功能出現在Firefox 31中,並且隨Chrome 38一起提供。IE未實現。 不了解其他瀏覽器。

嘗試

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")
      }
    })
});

例如:

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");
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM