【问题标题】:Array Map callback function with only one argument returns the callback function argument as index instead of the item itself只有一个参数的数组映射回调函数返回回调函数参数作为索引而不是项目本身
【发布时间】:2017-01-29 16:56:48
【问题描述】:

我不知道为什么会这样,但是在我运行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 数组项。

【问题讨论】:

  • 你能发布一个工作的 jsbin 吗?

标签: javascript arrays node.js


【解决方案1】:

如果 company_det 是一个对象数组,而 map 是 Array.map,则这是不可能的。
您没有提供实际问题的代码。要么将数组索引存储在 Companies_det 中,要么 company_det 不是数组,也不是标准的 map 函数。

尝试记录 Companies_det。

【讨论】:

  • companies_det 是 Cheerio 返回的对象数组
猜你喜欢
  • 1970-01-01
  • 2013-07-20
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
相关资源
最近更新 更多