我正在尝试过滤这个.json,以免显示私人视频。它适用于YouTube频道的应用程序。有些视频是私人的,我不想在应用程序中显示它们。我需要帮助过滤 .json
目前它返回一个空的 json。 如果我删除 .map,它会返回带有私人视频的完整列表。
getPlayListVideos(listId: string) {
return this.http.get('https://www.googleapis.com/youtube/v3/playlistItems?key=' + this.apiKey + '&fields=items/snippet/resourceId/videoId,items/snippet/publishedAt,items/snippet/title,items/snippet/thumbnails/high/url&playlistId=' + listId +'&part=snippet,id&maxResults=25')
.map((res) => {
return res.json()['items'].filter(item => {
if(item.snippet.title === 'Private video'){
return false;
}
});
})
}
如果不想筛选当前项目,则需要返回 true。目前,您隐式返回 false 或未定义,因为在这种情况下您不返回任何内容。所以你需要这样做:
if(item.snippet.title === 'Private video'){
return false;
} else {
return true;
}
或者更好的是return item.snippet.title !== 'Private video'
.
奖金格式 - 我会亲自这样写整个事情:
getPlayListVideos(listId: string): any[] {
return this.http.get('https://www.googleapis.com/youtube/v3/playlistItems?key=' + this.apiKey + '&fields=items/snippet/resourceId/videoId,items/snippet/publishedAt,items/snippet/title,items/snippet/thumbnails/high/url&playlistId=' + listId + '&part=snippet,id&maxResults=25')
.map(res => res.json()['Items'])
.map((items: any[]) => items.filter(item => item.snippet.title !== 'Private video'))
}