Javascript 如果在React/ES6中相同,则仅显示单个项目

Javascript 如果在React/ES6中相同,则仅显示单个项目,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我只想显示一个项目,如果它具有相同的属性,那么它具有相同的联系人id和id 预期输出为Name:Robert Williams,Name:John Jones 响应 { "id": "8888", "contact_id": "3424", "contact_name": "Robert Williams", }, { "id": "

我只想显示一个项目,如果它具有相同的属性,那么它具有相同的
联系人id
id

预期输出为
Name:Robert Williams,Name:John Jones

响应

{
  "id": "8888",
  "contact_id": "3424",
  "contact_name": "Robert Williams",
},
{
  "id": "9999",
  "contact_id": "4343",
  "contact_name": "John Jones",
},
{
  "id": "8888",
  "contact_id": "3424",
  "contact_name": "Robert Williams",
}
{
  data.map((item, index) => {
    return (
      <div key={index}>
        <h1>Name</h1>
        <p>
          {item.contact_name}
        </p>
      </div>
    );
  });
}
代码

{
  "id": "8888",
  "contact_id": "3424",
  "contact_name": "Robert Williams",
},
{
  "id": "9999",
  "contact_id": "4343",
  "contact_name": "John Jones",
},
{
  "id": "8888",
  "contact_id": "3424",
  "contact_name": "Robert Williams",
}
{
  data.map((item, index) => {
    return (
      <div key={index}>
        <h1>Name</h1>
        <p>
          {item.contact_name}
        </p>
      </div>
    );
  });
}
{
data.map((项目、索引)=>{
返回(
名称

{item.contact_name}

); }); }
像这样的东西

let数据=[{
“id”:“8888”,
“联系人id”:“3424”,
“联系人姓名”:“Robert Williams”,
},
{
“id”:“9999”,
“联系人id”:“4343”,
“联系人姓名”:“约翰·琼斯”,
},
{
“id”:“8888”,
“联系人id”:“3424”,
“联系人姓名”:“Robert Williams”,
}
];
让变换=(数据)=>{
让现有={};
让结果=[];
data.forEach(x=>{
如果(!现有[x.id]| |!现有[x.id][x.contact_id]){
现有[x.id]={
[x.联系人id]:正确
};
结果:推(x);
}
});
返回结果;
}
console.log(转换(数据))

let数据=[{
“id”:“8888”,
“联系人id”:“3424”,
“联系人姓名”:“Robert Williams”,
},
{
“id”:“9999”,
“联系人id”:“4343”,
“联系人姓名”:“约翰·琼斯”,
},
{
“id”:“8888”,
“联系人id”:“3424”,
“联系人姓名”:“Robert Williams”,
}
];
让变换=(数据)=>{
让现有={};
让结果=[];
data.forEach(x=>{
如果(!现有[x.id]| |!现有[x.id][x.contact_id]){
现有[x.id]={
[x.联系人id]:正确
};
结果:推(x);
}
});
返回结果;
}
console.log(转换(数据))以下是一个解决方案:

 {
  data.map((item, index) => {
    if(item.contact_name === item.contact_id) {
       return (
          <div key={index}>
           <h1>Name</h1>
          <p>
            {item.contact_name}
          </p>
        </div>
      );

    }  else {
        return null;
 }
    
  });
}
{
data.map((项目、索引)=>{
if(item.contact\u name==item.contact\u id){
返回(
名称

{item.contact_name}

); }否则{ 返回null; } }); }
这里有一个解决方案:

 {
  data.map((item, index) => {
    if(item.contact_name === item.contact_id) {
       return (
          <div key={index}>
           <h1>Name</h1>
          <p>
            {item.contact_name}
          </p>
        </div>
      );

    }  else {
        return null;
 }
    
  });
}
{
data.map((项目、索引)=>{
if(item.contact\u name==item.contact\u id){
返回(
名称

{item.contact_name}

); }否则{ 返回null; } }); }
一行ES6可以实现以下神奇功能:

const arr = [{
  "id": "8888",
  "contact_id": "3424",
  "contact_name": "Robert Williams",
},
{
  "id": "9999",
  "contact_id": "4343",
  "contact_name": "John Jones",
},
{
  "id": "8888",
  "contact_id": "3424",
  "contact_name": "Robert Williams",
}]

   const data = arr.filter((v,i,a)=>a.findIndex(t=>(t.id === v.id && t.contact_id===v.contact_id))===i)
然后

{
  data.map((item, index) => {
    return (
      <div key={index}>
        <h1>Name</h1>
        <p>
          {item.contact_name}
        </p>
      </div>
    );
  });
}
{
data.map((项目、索引)=>{
返回(
名称

{item.contact_name}

); }); }
一行ES6可以实现以下神奇功能:

const arr = [{
  "id": "8888",
  "contact_id": "3424",
  "contact_name": "Robert Williams",
},
{
  "id": "9999",
  "contact_id": "4343",
  "contact_name": "John Jones",
},
{
  "id": "8888",
  "contact_id": "3424",
  "contact_name": "Robert Williams",
}]

   const data = arr.filter((v,i,a)=>a.findIndex(t=>(t.id === v.id && t.contact_id===v.contact_id))===i)
然后

{
  data.map((item, index) => {
    return (
      <div key={index}>
        <h1>Name</h1>
        <p>
          {item.contact_name}
        </p>
      </div>
    );
  });
}
{
data.map((项目、索引)=>{
返回(
名称

{item.contact_name}

); }); }
创建对象和筛选函数:

const memo = {};

const filter = (item) => {
  if(!memo[item.id]){
     return true;
  }else {
    memo[item.id] = item.id;
    return false;
  }
}
然后在渲染中:

{
  data.filter(filter).map((item, index) => {
      return (
         <div key={index}>
           <h1>Name</h1>
           <p>
             {item.contact_name}
           </p>
         </div>); 
  });
}
{
data.filter(filter.map)((项目、索引)=>{
返回(
名称

{item.contact_name}

); }); }
创建对象和筛选函数:

const memo = {};

const filter = (item) => {
  if(!memo[item.id]){
     return true;
  }else {
    memo[item.id] = item.id;
    return false;
  }
}
然后在渲染中:

{
  data.filter(filter).map((item, index) => {
      return (
         <div key={index}>
           <h1>Name</h1>
           <p>
             {item.contact_name}
           </p>
         </div>); 
  });
}
{
data.filter(filter.map)((项目、索引)=>{
返回(
名称

{item.contact_name}

); }); }
您可以使用:

然后迭代转换后的数组

,您可以使用:

然后迭代转换后的数组

,这是否解决了您的问题,这能解决你的问题吗?