出于某种原因,当我输出到文本框时,它会写入Object object
下面是我的代码,尽管它是一个数组。
这不是重复的问题,因为在console.log中,它显示所有抓取的数据的数组,但当将这些数据放入文本框中时,它只显示对象对象
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');
}
});
}
在文本框中,它只输出对象对象,不知道从这里做什么。
发布于 2018-08-16 03:35:25
您必须访问特定索引中的值。
尝试在您的浏览器开发人员控制台中放置一个‘re,并检查您正在记录的内容的索引。
然后访问它们。
发布于 2018-08-16 05:24:50
你先做map
然后做reduce
..。reduce中的累加器是一个对象。然后你把一个对象放在一个文本框中,你得到的是[Object object]
看看你的reduce输出。[Object object]
仅仅意味着Javascript将一个对象转换为一个字符串,结果就是你所看到的。
只需找出您想要在文本框中显示对象的哪个属性,并传递该属性而不是整个对象。
发布于 2020-10-02 07:28:18
如果要将其写为字符串,请使用document.querySelector('#out').innerHTML = JSON.stringify(output);
https://stackoverflow.com/questions/51869245
复制