多种代码去重方式

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值