Javascript将[Object object]输出到文本框(在控制台中工作,不在文本框中)

时间:2018-08-16 03:33:49

标签: javascript jquery arrays

由于某种原因,当我输出到文本框时,它会写[Object object]

这是我的下面的代码,尽管它是一个数组。

这不是一个重复的问题,因为在console.log中它显示了所有已抓取数据的数组,但是当将这些数据放入文本框中时,它仅显示[Object object]

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

var options = {
  headers: {
    'user-agent': 'request'
  }
};

function somefunction() {
  request('https://kith.com/collections/footwear/products/jbaq4160-140', options, (error, response, html) => {

    if (!error && response.statusCode == 200) {
      const $ = cheerio.load(html);

      var output = $('form[action="/cart/add"] select#productSelect > option').map((i, elem) => ({
        size: $(elem).text(),
        val: $(elem).attr('value')
      })).get().reduce((acc, cur, i, arr) => {
        arr.obj = arr.obj || {};
        arr.obj[cur.size] = cur.val;
        return arr.obj
      }, {});

      document.querySelector('#out').innerHTML = output;
      console.log(output);
      console.log('done');
    }
  });
}

在texbox中,它只是输出[Object object],不知道从这里做什么。

3 个答案:

答案 0 :(得分:1)

您必须访问特定索引中的值。

尝试在浏览器的开发人员控制台中放置bugger,并检查所记录内容的索引。

然后访问它们。

答案 1 :(得分:0)

您先做map,然后再做reduce ...您在reduce中的累加器是一个对象。然后,您将一个对象放在文本框中,得到的是[Object object]

查看您的减少输出。 [Object object]仅仅意味着Javascript是unboxing的一个String对象,其结果就是您所看到的。

只需在文本框中找出所需对象的哪个属性,然后将其传递给整个对象即可。

答案 2 :(得分:0)

如果您想将其写为字符串,请使用document.querySelector('#out').innerHTML = JSON.stringify(output);