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}
);
});
}
您可以使用:
然后迭代转换后的数组,您可以使用:
然后迭代转换后的数组,这是否解决了您的问题,这能解决你的问题吗?