拆分解析的 rss 结果
Split parsed rss results
我正在从事一个项目,使用 rss-parser
将来自多个站点的 RSS 提要解析为聚合的工作板
提要对 title
使用不同的格式,因此解析的 JSON 也有不同的格式。请参阅下面三种不同格式的示例。
title: Roundtrip: Senior Product Designer
title: Frontend Developer
title: Unreal is looking for a Product Designer
我想做的是统一标题/公司格式
- 将
Roundtrip: Senior Product Designer
拆分为company: Roundtrip
和title: Senior Product Designer
- 将
Unreal is looking for a Product Designer
拆分为 company: Unreal
和 title: Product Designer
。
目前它们被合并到状态为 using
的数组中
this.setState(prevState => ({
data: this.state.data.concat(feed.items)
}));
但这使我处于不同标题格式变得非常明显的位置。
我将如何拆分这些字符串,然后然后将它们合并到一个组合数组中?
您可以 运行 对项目进行映射以获得包含标题和公司密钥的新数组。
let items = [{title:'Roundtrip: Senior Product Designer'},{title:'Frontend Developer'},{title:'Unreal is looking for a Product Designer'}]
console.log(items.map(item => {
const colonSeperated = item.title.split(':')
const phraseSeperated = item.title.split('is looking for ')
if(colonSeperated.length == 2){
return ({
company:colonSeperated[0],
title: colonSeperated[1].trim(' ')
})
}
else if(phraseSeperated.length ==2){
const phraseSeperatedTitle =
phraseSeperated[1].startsWith('an')?
phraseSeperated[1].substr(2):phraseSeperated[1].substr(1)
return({
company:phraseSeperated[0].trim(' '),
title: phraseSeperatedTitle.trim(' ')
})
}
else {
return ({
company:null,
title:item.title
})
}
}
))
我正在从事一个项目,使用 rss-parser
将来自多个站点的 RSS 提要解析为聚合的工作板提要对 title
使用不同的格式,因此解析的 JSON 也有不同的格式。请参阅下面三种不同格式的示例。
title: Roundtrip: Senior Product Designer
title: Frontend Developer
title: Unreal is looking for a Product Designer
我想做的是统一标题/公司格式
- 将
Roundtrip: Senior Product Designer
拆分为company: Roundtrip
和title: Senior Product Designer
- 将
Unreal is looking for a Product Designer
拆分为company: Unreal
和title: Product Designer
。
目前它们被合并到状态为 using
的数组中this.setState(prevState => ({
data: this.state.data.concat(feed.items)
}));
但这使我处于不同标题格式变得非常明显的位置。
我将如何拆分这些字符串,然后然后将它们合并到一个组合数组中?
您可以 运行 对项目进行映射以获得包含标题和公司密钥的新数组。
let items = [{title:'Roundtrip: Senior Product Designer'},{title:'Frontend Developer'},{title:'Unreal is looking for a Product Designer'}]
console.log(items.map(item => {
const colonSeperated = item.title.split(':')
const phraseSeperated = item.title.split('is looking for ')
if(colonSeperated.length == 2){
return ({
company:colonSeperated[0],
title: colonSeperated[1].trim(' ')
})
}
else if(phraseSeperated.length ==2){
const phraseSeperatedTitle =
phraseSeperated[1].startsWith('an')?
phraseSeperated[1].substr(2):phraseSeperated[1].substr(1)
return({
company:phraseSeperated[0].trim(' '),
title: phraseSeperatedTitle.trim(' ')
})
}
else {
return ({
company:null,
title:item.title
})
}
}
))