Javascript 为什么我在尝试筛选电影发行日期时未定义?

Javascript 为什么我在尝试筛选电影发行日期时未定义?,javascript,reactjs,debugging,Javascript,Reactjs,Debugging,这是包含电影发行日期的收藏夹状态 我正在尝试将发布日期过滤到dates状态,如下所示: sortMovies= () => { let releases = this.state.favorites.filter(this.favorites.release_date) this.setState({ dates: releases, }); console.log(this.state.dates); } 我把这个功能放在一个按钮上,点击一次

这是包含电影发行日期的收藏夹状态

我正在尝试将发布日期过滤到dates状态,如下所示:

sortMovies= () => {
    let releases = this.state.favorites.filter(this.favorites.release_date)
    this.setState({
      dates: releases,
    });
    console.log(this.state.dates);
}
我把这个功能放在一个按钮上,点击一次,当我按下它时,我得到:


如何筛选出收藏夹状态下的所有发布日期并将其添加到日期状态?

filter
将筛选出数组中返回真实值的每个条目。您正试图提取每个收藏夹的
发布日期
,因此
地图
更适合于此:

let releases = this.state.favorites.map(favorite => favorite.release_date);

filter
将过滤掉数组中返回真实值的每个条目。您正试图提取每个收藏夹的
发布日期
,因此
地图
更适合于此:

let releases = this.state.favorites.map(favorite => favorite.release_date);

因为
Array.prototype.filter()要求第一个参数是

您正在尝试使用
this.favorites.release\u date
,它不是一个函数,并且未定义,因为
this.favorites
是一个数组

而是使用一个回调函数,该函数将测试数组的每个元素,并在匹配时返回true,否则返回false

const releases = this.state.favorites.filter(movie => !!movie.release_date)

因为
Array.prototype.filter()要求第一个参数是

您正在尝试使用
this.favorites.release\u date
,它不是一个函数,并且未定义,因为
this.favorites
是一个数组

而是使用一个回调函数,该函数将测试数组的每个元素,并在匹配时返回true,否则返回false

const releases = this.state.favorites.filter(movie => !!movie.release_date)