2017-01-29 6 views
-1

なぜこのようなことが起こっているのかわかりませんが、map関数を実行しているマップでは、アイテムの代わりにインデックス番号としての最初の引数。 2つの引数を割り当てると、最初のargがインデックス、2番目のargがアイテムとして割り当てられますが、1つの引数だけを割り当てると、アイテム自体ではなくインデックス番号が与えられます。私はconsole.log(company_det)をすれば、私が代わりにcompanies_det配列項目の​​を受け、上記の関数で引数が1つの配列マップコールバック関数は、項目自体の代わりにインデックスとしてコールバック関数の引数を返します

return companies_det.map(function (company_det) { 
    console.log(company_det); 
    var $ = cheerio.load(company_det); 
    var company_name = $(company_det).find('a').text(), 
     company_esomar_url = $(company_det).find('a').attr('href'); 

    return Rq(company_esomar_url) 
      .then(function (web_data) { 
        var $ = cheerio.load(web_data); 

        return { 
          company_name: company_name, 
          company_url: $('a[data-ga-category="website"]').attr('href') 
         } 
      }) 
      .catch(function (err) { 
         return err; 
        }) 
      }); 

以下は私の機能ブロックです。

+2

作業中のjsbinを投稿できますか? – dangor

答えて

0

companies_detがオブジェクトの配列であり、mapがArray.mapである場合、これは不可能です。
コードに実際の問題はありませんでした。配列インデックスをcompanies_detに格納したか、またはcompanies_detが配列ではなく、標準のマップ関数ではありません。

logging companies_detを試してください。

+0

'companies_det'はCheerioによって返されたオブジェクト配列です – ChanX

関連する問題