使用 .map 筛选 Json



我正在尝试过滤这个.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'))
  }

相关内容

  • 没有找到相关文章

最新更新