这是收藏夹状态,其中包含电影的发行日期。
我试图将release_date过滤器设置为日期状态,如下所示:
sortMovies= () => {
let releases = this.state.favorites.filter(this.favorites.release_date)
this.setState({
dates: releases,
});
console.log(this.state.dates);
}
我将此功能放在按钮onClick中,当我按下它时,会得到:
如何过滤掉处于收藏夹状态的所有release_date并将其添加到日期状态?
答案 0 :(得分:5)
filter
将过滤掉返回真实值的数组中的每个条目。您正在尝试提取每个收藏夹的release_date
,因此map
更适合:
let releases = this.state.favorites.map(favorite => favorite.release_date);
答案 1 :(得分:0)
因为Array.prototype.filter()
期望第一个参数是
function
您正尝试使用this.favorites.release_date
,它不是一个函数,并且由于this.favorites
是一个数组而没有定义。
请使用回调函数来测试数组的每个元素,如果匹配则返回true,否则返回false。
const releases = this.state.favorites.filter(movie => !!movie.release_date)