【问题标题】:Why am I getting undefined while trying to filter the movie release_date?为什么我在尝试过滤电影 release_date 时变得不确定?
【发布时间】:2018-06-29 12:26:09
【问题描述】:

这是包含电影 release_date 的收藏夹状态。

我正在尝试将过滤器 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,添加到dates状态?

【问题讨论】:

    标签: javascript reactjs debugging


    【解决方案1】:

    filter 将过滤掉数组中返回真值的每个条目。您正在尝试提取每个收藏夹的release_date,因此map 会更适合:

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

    【讨论】:

      【解决方案2】:

      因为Array.prototype.filter() 期望第一个参数是 function

      您正在尝试使用this.favorites.release_date,它不是一个函数并且它是未定义的,因为this.favorites 是一个数组。

      改为使用回调函数,该函数将测试数组的每个元素,如果匹配则返回 true,否则返回 false。

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

      【讨论】:

        猜你喜欢
        • 2022-10-23
        • 1970-01-01
        • 2022-09-23
        • 1970-01-01
        • 1970-01-01
        • 2022-06-27
        • 1970-01-01
        • 2021-04-03
        • 1970-01-01
        相关资源
        最近更新 更多