Лучший способ сопоставить значения во вложенных объектах JS, jQuery - PullRequest
0 голосов
/ 11 февраля 2011

Хорошо, у меня есть большой JS-объект, который содержит данные, которые мне нужны, в трех уровнях:

ob = {
  x1:{
    y11:{a:foo,b:bah},
    y22:{a:foo,b:bah},
    y33:{a:foo,b:bah}
  }
  x2:{
    y11:{a:foo,b:bah},
    y22:{a:foo,b:bah},
    y33:{a:foo,b:bah}
  } 
  x3:{
    y11:{a:foo,b:bah},
    y22:{a:foo,b:bah},
    y33:{a:foo,b:bah}
  }
}

У меня также есть массив значений:

var array = [foo,bah,foo,bah];

Мне нужно проверить, совпадают ли значения в этом массиве с какими-либо значениями на третьем уровне моего большого объекта JS, и вытащить некоторые близкие мне значения Я понимаю, что это возможно с 3 вложенными циклами $ .each. Но это самый эффективный способ сделать эту работу?

Надеюсь, это понятно, спасибо за помощь!

1 Ответ

2 голосов
/ 11 февраля 2011

Вам нужно три вложенных цикла для этого.Нет пути назад.

for(var level1 in ob) {
    for(var entry in level1) {
        for(var value in entry) {
            if( $.inArray(entry[value], array) > -1 ) {
                // match
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...