问题描述
我有一个基于打字稿的网页抓取脚本,我从 HTML 页面获取一些属性。
我的问题是我想将键变成我创建的类型。但由于我正在遍历元素列表(来自cheerio 库的概念)。
const image = prependImage($(elem).find('img').attr('data-src') || "")
const title = $(elem).find('.slotCardName').text()
const rank = Number($(elem).find('.widget-rank-small-pr').find('span').text()) || null
let providerAmount = 0;
$(elem).find('.providerCard-prewBlock-number').each((index,elem) =>{
if(index === 0){
providerAmount = Number($(elem).text())
}
})
const restAttributes = $(elem).find('.propTable').children();
const mappedAttributes = restAttributes.map((index,element): {[key: string]: string} => {
const [key,_value] = $(element).text().split(':')
return {[key]: _value}
})
因为 [key]
只在运行时知道,所以我可以将数据映射到我的类型中,如下所示:
export interface ScrapeGames {
image: string;
title: string;
rank: number | null;
providerAmount: number;
RTP: string;
'Max Win': string;
'Min Bet': number;
volatility: string;
betways: number
release: string
devices: string
}
有什么办法可以将这些属性映射到上述类型中? 到目前为止,我最好的猜测是创建很多条件来检查键是否等于每个单独的值,然后进行硬编码。像这样的钥匙
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)