Javascript 为什么我在尝试筛选电影发行日期时未定义?
这是包含电影发行日期的收藏夹状态 我正在尝试将发布日期过滤到dates状态,如下所示: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); } 我把这个功能放在一个按钮上,点击一次
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)