如何在JS“反应式选择器”中删除重复项

问题描述

请找到以下数据。这是我仅需要Id:1数据。有些Id没有值,有些Id还有另一个值。

实际数据:

data[
 {Id: 1,Specialization: "General",ImageUrl: "http://122.175.55.55:8080/storage/loadfile/specialization/doctor.png",Description: "General",IsActive: true,…}
 {Id: 2,Specialization: "Cardiology",ImageUrl: "http://122.175.55.55:8080/storage/loadfile/specialization/heartbeat.png",Description: "Hart Related",…}
 {Id: 3,Specialization: "Gynaecology",ImageUrl: "http://122.175.55.55:8080/storage/loadfile/specialization/nephrology.png",Description: "Gynaecology",…}
 {Id: 4,Specialization: "Orthopedic",ImageUrl: "http://122.175.55.55:8080/storage/loadfile/specialization/mental.png",Description: "Bones",…}
 {Id: 1,…}
]

我需要这样

data[
{Id: 1,…}
{Id: 2,…}
{Id: 3,…}
]

解决方法

您可以尝试这样:

const data = [
 {Id: 1,Specialization: "General",ImageUrl: "http://122.175.55.55:8080/storage/loadfile/specialization/doctor.png",Description: "General",IsActive: true,…}
 {Id: 2,Specialization: "Cardiology",ImageUrl: "http://122.175.55.55:8080/storage/loadfile/specialization/heartbeat.png",Description: "Hart Related",…}
 {Id: 3,Specialization: "Gynaecology",ImageUrl: "http://122.175.55.55:8080/storage/loadfile/specialization/nephrology.png",Description: "Gynaecology",…}
 {Id: 4,Specialization: "Orthopedic",ImageUrl: "http://122.175.55.55:8080/storage/loadfile/specialization/mental.png",Description: "Bones",…}
 {Id: 1,…}
]

const getUniqueData = (data) => {
  const indexes = [];
  const uniqueData = [];
  
  for(let i = 0; i < data.length; i++){
    if(indexes.contains(data[i].id)){
      continue; 
    } else {
      indexes.push(data[i].id);
      uniqueData.push(data[i]);
    }
  }
  
  return uniqueData;
}

const uniqueData = getUniqueData(data);

这当然是一个原始的解决方案。对于此类情况,您可以尝试使用javascipt集或lodash库。