React,在 main 函数的返回中显示一个自定义数组

React, display a customized array in the return of the main function

提问人:Andy McRae 提问时间:8/31/2023 更新时间:8/31/2023 访问量:32

问:

我有一个带有 home.jsx 文件的 react 项目,我在其中创建了一个 JSON 数组:

function Home() {
  const posts = [
    {
      id:1,
      title:"Point Break",
      year:"1992",
      category:["Action","Hold-up","Crime","Surfing","Cult Movie"],
      description:"The film features Reeves as an undercover FBI agent....",
      image: "/movies/1.png"
    },{..}
//etc..

然后,在home函数的返回中,我像这样呈现该列表:

return (
posts.map(
          post=>(
            <div className="post" key={ post.id}>
              <div className="img">
              </div>
              <div className="content">
                <h1>{post.title}</h1>         
                <p>Category: 
                  {  
                    post.category.map( element =>( element+", "))
                  }</p>                  
                <p>{post.description}</p>                    
              </div>                 
            </div>
))}

当我想用它的数组呈现类别键时,问题就来了,单词之间有一个逗号,但不是最后一个,因为后面没有单词 输出如下所示

Output

我想避免图像中的最后一个逗号,但显然我无法在返回中创建任何逻辑。我怎样才能做到这一点?我需要在退货之外做一个功能吗?

我已经尝试过这样的事情:

  const filterCommas = (list,listlength) => {
    var $i=0;
    var renderlist=""
    list.forEach(element => {
      if($i<=listlength-1){
        renderlist += element + ", "
      }
      $i+=1;
    });
    return filteredList;
  }

但是我无法从返回函数中调用它。如何过滤逗号?

JavaScript 节点.js ReactJS 函数 返回

评论

1赞 Rohad Bokhar 8/31/2023
您是否尝试过删除最新字符?slice
2赞 cmgchess 8/31/2023
只是?stackoverflow.com/a/39771183/13583510post.category.join(", ")
0赞 Andy McRae 8/31/2023
嗨,感谢您的回答 Rohad。我试过(post.category.map( element =>( element+“, ”))).slice(0,-1),但实际上它:(削减了列表的最后一个元素。实际上,有一个 nooed 能够将逻辑放入渲染中以删除逗号 XD。我将尝试其他选择,但谢谢
0赞 Andy McRae 8/31/2023
好的,谢谢。Post.category.join 是完美的:)。谢谢

答:

1赞 Andy McRae 8/31/2023 #1

好的,所以cmgchess(非常感谢:))给了我答案,那就是:

> post.category.join(", ")在返回中:

所以我会:

<p>
    Category: {  
        post.category.join(", ")
    }
</p>

而不是:

<p>
    Category: {  
        post.category.map( element =>( element+", "))
    }
</p>

谢谢你的:)。

不过,如果有其他方法,我会很高兴听到,因为有时需要能够使用一些逻辑(可能是某个地方的变量或循环)过滤一些信息。谢谢