JavaScript JSON сравнить - PullRequest
       5

JavaScript JSON сравнить

0 голосов
/ 03 апреля 2011

Есть два JSON var (JSON.parse'd уже)

var acc http://pastebin.com/7DyfFzTx

var sit http://pastebin.com/vnZiVaDx

Моя цель - зациклить каждый var, чтобы сравнить acc.items.site_name с sit.items.main_site.name, чтобы увидеть, равны ли они. Если они равны, то мне нужно хранить sit.items.main_site.site_url в переменной. Я использую этот код:

for(i=0; i < acc.items.length;i++)
{
  aname = acc.items[i].site_name;
  for(i=0; i < sit.items.length;i++)
    {
     sname = sit.items[i].main_site.name;
     if (aname == sname)
     alert("same "+aname);
    }
}

Но alert регистрирует только "ту же физику". «Физика» - первый объект в acc.items. Это означает, что цикл сравнивает только первый acc.items, но как мне сделать так, чтобы он сравнивал второй и другие объекты (например, "TeX - LaTeX")

Ответы [ 2 ]

4 голосов
/ 03 апреля 2011

Ну, вы можете начать с использования другой переменной управления для внешнего и внутреннего циклов. :)

Кроме того, обратите внимание, как вы проходите через каждый элемент второго объекта каждый раз, когда вы рассматриваете элемент в первом объекте - это не похоже на то, что вы хотите сделать.

Попробуйте просмотреть эту публикацию для более модульного метода:

http://jsperf.com/recursive-vs-json-object-comparison

2 голосов
/ 03 апреля 2011

Вы используете одну и ту же переменную для внутреннего и внешнего цикла.

Дайте второй петле for имя переменной, отличное от i

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...