Javascript Don';t从数组中输出相同的项

Javascript Don';t从数组中输出相同的项,javascript,reactjs,Javascript,Reactjs,我用的是react js。我尝试用对象映射数组,并从数组中输出每个对象的名称: const arr=[ { 姓名:“比尔”, 年龄:88 }, { 姓名:“比尔”, 年龄:18 }, { 姓名:“杰克”, 年龄:55 }, ] {arr.map(i=>( {i.name} ))}在映射和渲染之前,需要创建一组名称。你可以像下面这样做 {[...new Set(arr.map(i => i.name))].map(i => ( <li key={i.id

我用的是react js。我尝试用对象映射数组,并从数组中输出每个对象的名称:

const arr=[
{
姓名:“比尔”,
年龄:88
},
{
姓名:“比尔”,
年龄:18
},
{
姓名:“杰克”,
年龄:55
},
]
{arr.map(i=>(
  • {i.name}

  • ))}
    在映射和渲染之前,需要创建一组名称。你可以像下面这样做

      {[...new Set(arr.map(i => i.name))].map(i => (
            <li key={i.id}>
              {i.name}
            </li>
       ))}
    
    {[…新集合(arr.map(i=>i.name))].map(i=>(
    
  • {i.name}
  • ))}
    您可以使用来解决此问题。下面的代码片段将很容易完成您需要的工作

    _.uniqBy(arr,"name").map(i => (
        <li key={i.id}>
          {i.name}
        </li>
    
    \ uqby(arr,“name”).map(i=>(
    
  • {i.name}

  • ))}

    您可以根据每个对象中的
    name
    属性从
    arr
    中删除重复项,然后对其使用数组
    map()
    方法,如:

    {[...new Map(arr.map(i=> [i.name, i])).values()].map(i => (
       <li key={i.id}>
          {i.name}
       </li>
    ))}
    
    {[…新映射(arr.Map(i=>[i.name,i])).values()].Map(i=>(
    
  • {i.name}
  • ))}
    演示:

    const arr=[{name:“Bill”,年龄:88},{name:“Bill”,年龄:18},{name:“Jack”,年龄:55}];
    类应用程序扩展了React.Component{
    render(){
    返回(
    {[…新映射(arr.Map(i=>[i.name,i])).values()].Map(i=>(
    
  • {i.name}
  • ))} ); } } ReactDOM.render(,document.getElementById(“app”)
    您必须过滤掉值。这可以通过多种方式实现。一种方法是拥有一个对象,只按那些不存在的键。