首页 > 解决方案 > 如何从标题包含给定单词的 json 文件中分离所有标题?

问题描述

这是一个函数,只是将道具返回给 React 中名为 box 的元素。这MovieDatabase是一个 JSON 文件,其中包含不同电影的标题。我只想看那些名字包括“星球大战”的电影。

const showMovies = MovieDatabase.map((movie) =>{
const aa = movie.title.contains("Star Wars")
return (
    <Box movieName = {aa} />
);})

标签: javascriptjsonreactjs

解决方案


我认为最好与组件分开过滤。

这里有一个方法:

// assuming the DB is something like this based on your .map example
const MovieDatabase = [
    { title: 'Star Wars: II', id: 0 },
    { title: 'Star Wars: I', id: 1 },
    { title: 'Star Wars: IV', id: 2 },
    { title: 'Moon', id: 3 }
  ]

// array of star wars movies
const starWars = MovieDatabase.filter(movie => movie.title.includes('Star Wars'))

// component to render movies ( doesn't care about anything but rendering )
const MovieBoxes = movies => movies.map(movie => (
  <Box key={movie.id} movieName={movie.title} />
)

您可以通过将过滤器包装在一个接受关键字并将其传递给包含的函数中来进一步改进它,以便您可以找到任何电影。


推荐阅读