Я пытаюсь собрать информацию из WEB, но если на одной странице есть 2 элемента, информация хранится в одной строке obj. Как хранить информацию в другой строке? код:
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
$('#ctl00_MainContent_ipcAvaDay_upnlResultOutbound').each((e, el) => {
var arrival_airport = $(el).find('.rowinfo2 td:nth-child(2)').text();
var alio = [arrival_airport];
и я получаю console.info
[RigaRiga]
вместо
[Riga]
[Riga]
может какие идеи?

Когда text() вызывается для набора элементов, jQuery объединяет все значения в одну строку.
Если вы хотите создать массив всех отдельных значений, используйте map():
var arrival_airport = $(el).find('.rowinfo2 td:nth-child(2)').map(function() {
return $(this).text();
}).get();
console.info(arrival_airport);
Я бы сказал, что это совсем не так, тем более что IE вообще не поддерживает функции стрелок.
Хорошо, но учтите, что это вопрос cheerio. Этот код работает в node.js, а не в браузере.
Просто для ясности: избежать this можно как в функциях до ES6, так и в функциях стрелок ES6 +:
До ES6 (без this):
var airports = $(el).find('.rowinfo2 td:nth-child(2)').map(function(i, el) {
return $(el).text();
}).get();
ЭС6:
let airports = $(el).find('.rowinfo2 td:nth-child(2)').map((i, el) => $(el).text()).get()
Не используйте this в этих блоках, потому что это странно и вызывает путаницу.
Хороший ответ, но нам, вероятно, следует прекратить использовать
thisв этих блоках, так как большинство людей перешли к стрелочным функциям, и это просто вызовет путаницу.