首页 > 解决方案 > 从另一个数组中提取的数组中获取 id 详细信息

问题描述

我有一个将 ID 存储为用户愿望清单的数组。

favoriteList:[458215,856254]

我有一个主数组,其中包含所有 id 的详细信息

results":[
      {
         "popularity":708.802,
         "vote_count":931,
         "video":false,
         "poster_path":"\/8WUVHemHFH2ZIP6NWkwlHWsyrEL.jpg",
         "id":338762,
         "adult":false,
         "backdrop_path":"\/ocUrMYbdjknu2TwzMHKT9PBBQRw.jpg",
         "original_language":"en",
         "original_title":"Bloodshot",
         "genre_ids":[
            28,
            878
         ]
      },
      {
         "popularity":719.623,
         "vote_count":2730,
         "video":false,
         "poster_path":"\/xBHvZcjRiWyobQ9kxBhO6B2dtRI.jpg",
         "id":419704,
         "adult":false,
         "backdrop_path":"\/5BwqwxMEjeFtdknRV792Svo0K1v.jpg",
         "original_language":"en",
         "original_title":"Ad Astra",
         "genre_ids":[
            18,
            878
         ]
      },..... and so on

当用户点击他的愿望清单部分时,我试图显示用户选择的 id 的海报路径。为了实现这一点,我编写了下面的代码。

 const showFavorites = () =>{
        if(favoriteList && movies){
           return  _.forEach(favoriteList,(data)=>{
                let favorite = _.find(movies.data.results,(favoritemovie)=>{
                     if(favoritemovie.id == data){
                         return(
                             <>
                                <CardGrid image={image_url+favoritemovie.poster_path}/>
                             </>
                         )
                     }
                });
            })
            }
        }

上面的代码返回屏幕上的 id。

实际输出:

458215856254

预期输出必须是以下组件的结果

<CardGrid image={image_url+favoritemovie.poster_path}/>

有人可以告诉我我做错了什么吗?

顺便说一句,我正在使用 lodash 的 foreach 并在该函数中找到。

编辑:我将代码更改如下

 const showFavorites = () =>{
        if(favoriteList && movies){
            return (
                <>
                 {
                    movies.data.results.map((movie,index)=>{
                            _.forEach(favoriteList,(data)=>{
                            if(movie.id == data){
                                return(
                                    <>
                                        <CardGrid image={image_url+movie.poster_path}/>
                                    </>
                                )
                            }
                        });
                    })
                 }
            </>)
        }
    }

这次我看到一个空白页。我不明白我错过了什么

标签: javascriptreactjs

解决方案


预期的结果是一个字符串。但返回语句的参数不是。您可能必须用引号将字符串部分与要馈送到字符串的变量正确连接。


推荐阅读