只有一个参数的Array Map回调函数将回调函数参数作为索引而不是项本​​身返回

时间:2017-01-29 07:18:13

标签: javascript arrays node.js

我不知道为什么会发生这种情况但是在我正在运行map函数的数组中,map的回调函数将其第一个参数作为索引号而不是项。如果我分配两个参数然后它的工作方式就像它应该如何工作,即第一个arg作为索引,第二个arg作为项目,但是当我只分配一个参数时,它给出了索引号而不是项目本身。

以下是我的功能块:

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;
                  })
             });

在上述功能中,如果我console.log(company_det)我收到index number而不是companies_det数组项。

1 个答案:

答案 0 :(得分:0)

如果companies_det是一个对象数组而map是Array.map,那是不可能的 您没有提供实际问题的代码。您是将数组索引存储在companies_det中,还是companies_det不是数组,而且它不是标准的地图函数。

尝试记录companies_det。