【问题标题】:Mapping objects gives back " function map() { [native code] } " .. why映射对象返回“function map() { [native code] }” .. 为什么
【发布时间】:2020-06-24 15:12:08
【问题描述】:

所以,我有点不知所措,为什么要找回它,是因为我将信息作为文本带回来吗?我想不管它应该仍然可以进入 p 标签。

在网站 html 上返回“function map() { [native code] }”之前,我有 [Object, Object] 。 . .返回 HTML

index.html:

    <body>
    <p id="results">${results.map}</p>
    <h1>demo</h1>
</body>

索引路线:

 router.get('/', function(req, res, next) {
 
  scraper().then(results => {
    console.log("results are ", results);
    res.render('index', {locals: { results }})
  });
});

然后这里是刮板:

debug = require ('../models/conn');
const puppeteer = require('puppeteer');
const axios = require('axios');
const cheerio = require('cheerio');

async function searchJobs(i) {
   const url = await axios.get('actual url')
    // return fetch(`${url}${i}`)
        .then(response =>  response)
        
        .then(res => {
            const jobs = [];
            const $ = cheerio.load(res.data);

            $('.result').each((index, element) => {
                const title = $(element).children('.title').text();
                const linkToJob = $(element).children('.title').children('a').attr('href')
                const body = $(element).children('.summary').text();
                jobs[index] = { title, linkToJob, body };
            });
            console.log(jobs);
            return jobs;
            // Prints tbe second child of results class results for that page in console.
            //    console.log($('.result').children().eq(1).text());
        });
        return url;
};
module.exports = searchJobs;

所以我有我想要的所有信息 console.loging 我只是想让它显示在页面的前端..

希望得到更多帮助,对编程还是新手..现在才真正编程大约 3 个月..

【问题讨论】:

  • 只使用&lt;p id="results"&gt;${results}&lt;/p&gt;
  • results 是一个对象数组,map() 是一个数组方法。
  • @TamasSzoke 只返回 [object Object],[object Object] 然后继续。
  • @palaѕн 哦...我明白了,所以我现在需要将对象数组转换为简单的属性数组?
  • 是的,测试这个的简单方法是在 UI 中使用它&lt;p id="results"&gt;${results[0].title}&lt;/p&gt;

标签: javascript arrays node.js express axios


【解决方案1】:

您正在尝试对results 对象使用map 方法。 如果你用map 方法迭代它,你可以做这样的事情......

<body>
  {results.map(result => { return <p>{result}</p> })}
</body>

这基本上将为您的results 对象中的每个结果创建一个&lt;p&gt; 标记

【讨论】:

  • 说我错过了,a ) 在参数列表之后,我之前尝试过这样的事情,因为这样的事情是我在以前的小项目中用来返回其他数据数组的。
  • 我有什么“${results.map(result =&gt; { return &lt;p&gt;${result}&lt;/p&gt; })}”在代码中也有反引号,但不能在评论中显示。
  • 修复了上面的问题,将其标记为答案,因为现在我正在处理新问题:P
猜你喜欢
  • 2018-05-30
  • 2021-02-17
  • 2020-02-03
  • 2020-05-03
  • 1970-01-01
  • 2013-06-15
  • 2021-09-10
  • 2019-07-06
  • 1970-01-01
相关资源
最近更新 更多