как я могу распечатать все вместе сразу - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть этот код ниже, идея в том, что когда пользователь предоставляет аргументы (имя певца / с), он сохраняет его и переходит к URL каждого (певца), распечатывает все песни и переходит к следующему (певец)имя) URL и распечатайте все песни, и так далее,

проблема в этом коде заключается в том, что, когда он печатает для первого (певец) и переходит к следующему, он печатает (первый и второй вместе)ОПЯТЬ)

как (Первый, (первый + второй), (первый, второй, третий) ...)

как мне напечатать все это один раз, как все вместе ОДИН РАЗ.. ??

Я пытался печатать в некоторых местах кода, он не работает,
, и когда я пытался напечатать console.log(mailoutput);, он работает внутри each loop, но вне его, он показывает, что Undefined

var request = require('request');
var cheerio = require('cheerio');

var urls = [];
var mailoutput ;
var songs = [];



// save all arguments into an array
for (let j = 2; j < process.argv.length; j++) {
    urls.push(process.argv[j]);
}

// loop through the array
for(var i =0; i<urls.length; i++){

 request('https://www.billboard.com/music/'+urls[i], function(error,response,body){
    if(!error && response.statusCode == 200){

var $ = cheerio.load(body);

var title = $('a.artist,div.artist-name').each(function(i, element) {
  mailoutput = $(this).text();
 //console.log(mailoutput);
  songs= songs +mailoutput;

});

}  // END OF IF ERROR
  console.log(songs);

});   // end of the REQUEST here

}  // end of the LOOP here ...

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

`` `

for(var i =0; i<urls.length; i++){
    request('https://www.billboard.com/music/'+urls[i], function(error,response,body){
        if(!error && response.statusCode == 200){
            var $ = cheerio.load(body);
            var title = $('a.artist,div.artist-name').text();
            console.log(title);
        }
    });
}

`` `

0 голосов
/ 25 апреля 2018

Вам нужно немного изменить код

Вместо: -

songs= songs +mailoutput;

сделать: -

songs.push(mailoutput);

Полный коддолжно быть: -

var request = require('request');
var cheerio = require('cheerio');

var urls = [];
var mailoutput ;
var songs = [];

for (let j = 2; j < process.argv.length; j++) {
    urls.push(process.argv[j]);
}
for(var i =0; i<urls.length; i++){
    request('https://www.billboard.com/music/'+urls[i], function(error,response,body){
        if(!error && response.statusCode == 200){
            var $ = cheerio.load(body);
            var title = $('a.artist,div.artist-name').each(function(i, element) {
                mailoutput = $(this).text();
                songs.push(mailoutput); // you define as array so push values to array
            });
        }
    });
}
console.log(songs);
...