1.
// 数据中年度去重
const uniqueYear = (dataInfo) => {
const array = dataInfo.map((t) => t.year);
const newData = array.filter(
(item, index, self) => self.indexOf(item) === index
);
return newData;
};
const yearArray = uniqueYear(data);
2.将特定的字段重复的数据提取出来
// 数据去重
const uniqueItems = (dataArray, uniqueId) => {
const uniqueList = [];
dataArray.forEach((item) => {
const exists = uniqueList.some(
(uniqueItem) => uniqueItem[uniqueId] === item[uniqueId]
);
if (!exists) {
uniqueList.push(item);
}
});
return uniqueList;
};
const aaa = uniqueItems(dataFilter, 'name');
3.将name重复的数据提取出来,并将他们的id组成数组存到ids中
// 数据去重
const uniqueItems = (data) => {
// 合并重复name数据
let arr = [];
data.forEach((x) => {
let map = arr.find((y) => y.name === x.name);
if (map) {
map.ids.push(x.id);
} else {
x.ids = [x.id]; // 用于删除和排序
arr.push(x);
}
});
return arr;
};
const aaa = uniqueItems(data);
// mark相同的归类处理
const setNew = Object.values(
data.reduce((acc, item) => {
// 检查当前项的mark是否已存在于累加器中
if (!acc[item.mark]) {
acc[item.mark] = {
id: item.id,
name: item.name,
mark: item.mark,
};
} else {
// 如果已存在,合并id和name
acc[item.mark].id += `,${item.id}`;
acc[item.mark].name += `/${item.name}`;
}
return acc;
}, {})
);
aaa.value = setNew;