javascript - 从另一个数组中提取的数组中获取 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}/>
</>
)
}
});
})
}
</>)
}
}
这次我看到一个空白页。我不明白我错过了什么
解决方案
预期的结果是一个字符串。但返回语句的参数不是。您可能必须用引号将字符串部分与要馈送到字符串的变量正确连接。
推荐阅读
- selenium - 从 instagram 抓取数据是否合法?
- java - 单击按钮时移动卡住
- java - 我是否犯了一个错误,因为在声明变量时?
- kotlin - 如果初始化了其中的lateinit var,如何检查伴随对象的外部
- ruby-on-rails - 如何为 ActiveStorage 磁盘服务设置缓存控制?
- laravel - 按特色 DESC 和 Rand() 排序 - Laravel
- java - 如何在没有副本的情况下将 MappedByteBuffer 写入套接字输出流(服务器到客户端)
- c# - 如何将函数调用到使用存在函数的 Linq 列表查询
- c# - Unity:raycast groundcheck 2d 不起作用
- c# - 如何在 Unity 的 2D 应用程序中获得空间声音?