我使用array.map遍历nodejs/cheerio中的DOM元素。
下面是我的代码:
const $ = cheerio.load(html);
const lis = $("table[id*='sortable-']").find('tr');
const lisy = lis.map((i, li) => {
var name = $(li).find('td.h-text-left.over-s-only').text();
var cnt = $(li).text();
return {
content: cnt
}
}).get();现在,我想通过"name“变量返回命名对象,但是现在,.map返回迭代对象:
0: {"cnt": content}, 1: {"cnt": content}考虑到这一点,我希望通过每个“名称”来索引对象,如下所示:
name: {"cnt": content}, name: {"cnt": content}可以这样命名返回的对象吗?
发布于 2018-08-24 19:32:34
您可以通过使用Array.prototype.reduce来实现您的目标
var result = lis.reduce(function(map, li) {
var name = $(li).find('td.h-text-left.over-s-only').text();
var cnt = $(li).text();
map[name] = { content: cnt };
return map;
}, {});https://stackoverflow.com/questions/51997544
复制相似问题