@sashavol

Правильная работа each в cheerio?

Доброй ночи! Нужна помощь!

Есть такой код:
var array = [], s_string = '';
  $('.on-map article').each(function() { 
	s_string += $(this).find('b').first().text();
       //в конце весь результат пушу в массив
      array.push(s_string);
  })


Я прохожу граббером (или парсером) по страничкам модулем cheerio, на некоторых страницах есть от 1 до 8 блоков которых я прохожу, все блоки находятся в тег "article", соответственно, когда заходит на страницу и там 1 блок все в порядке корректно проходит и сохраняет, но как только в странице 2 и более блоков для сохранения начинается не понятные для меня вещи.

Конкретно получается так, что если несколько блоков на странице, то сохраняет он по следующему:
1 страница ['значение 1']
2 страница ['значение 1'] // Тут 2 блока
2 страница ['значение 1'] // Тут 2 блока
2 страница ['значение 2'] // Тут 2 блока


Наверно не понятно объяснил :). Кароче он проходит все эти блоки столько раз сколько блоков и каждый раз возращает по нарастающей, если на странице 3 блока, то сначало вернет 1, далее 1,2, далее 1,2,3. Мои скудные знания jquery истощились :) И получается что в массиве сохраняются не уникальные данные, а дублированные столько раз сколько блоков
  • Вопрос задан
  • 879 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы