javascript - 过滤嵌套对象
问题描述
所以我有这个功能,理论上应该按给定类型过滤一系列电影,但我得到这个错误:
TypeError: movie.genres.some is not a function.
(in 'movie.genres.some(function(item){return item.name === genre;})',
'movie.genres.some' is undefined) `
Movie class =>
title: string,
...,
genres: Genre[]
Genre class =>
id: number,
name: string
FilterMovies = (genre: string) => {
let fmovies: Movie[] = this.state.movies.filter((movie) => {
let data = movie.genres.some((item) => item.name === genre);
return data;
});
我做这些事情是对的还是我搞砸了其中一个功能?任何帮助将不胜感激!
解决方案
从您收到的错误消息中。该类的genres
属性Movie
并不是真正的数组,Genre
因为所有数组都有一个some
属性(假设您没有删除它)。最有可能genres
的属性只是一个Genre
对象(错字)。
推荐阅读
- json - 使用条件关键字的 JSON Schema 交叉键约束支持
- python - 我还能用什么来代替python中的elif、if、else语句?
- microcontroller - wifi模块中应用处理器的目的是什么?
- python-3.x - For 循环 - 缩进问题。需要重新安排
- bash - 如何将 bash 函数指定为 scp -S 作为参数
- html - 页脚版权和设计者居中导航栏不是
- c# - 使用 AC/SC 读卡器从 Mifare Ultralight 卡获取原创签名
- javascript - Redux Reducer 更新值但未反映在 props 中
- php - 将 API 代码转换为 PHP CURL 时出现问题
- java - 如何使用java交换非常大文件中的行和列