复杂List数据去重后排序

1.两个功能函数实现

1.去重函数一
function unique(arr, key) {
    var res = new Map();
    return arr.filter(function (a) {
      return !res.has(a[key]) && res.set(a[key], 1);
    });
  }
2.去重函数二
function uniqueArray(arr = [], key) {
	const keyValues = new Set();
	let val;
	return arr.filter((obj) => {
		val = obj[key];
		if (keyValues.has(val)) {
 		return false;
	}
	keyValues.add(val);
	return true;
	});
}
3.排序函数
  function sortBy(attr, rev) {
    if (rev == undefined) {
      rev = 1;
    } else {
      rev = rev ? 1 : -1;
    }
    return function (a, b) {
      a = Number(a[attr]);
      b = Number(b[attr]);
      if (a < b) {
        return rev * -1;
      }
      if (a > b) {
        return rev * 1;
      }
      return 0;
    };
  }
const arr = [
    {
      id: 1,
      name: "s",
    },
    {
      id: 4,
      name: "ssss",
    },

    {
      id: 4,
      name: "ssss",
    },
    {
      id: 4,
      name: "ssss",
    },

    {
      id: 2,
      name: "ss",
    },
    {
      id: 2,
      name: "ss",
    },
    {
      id: 2,
      name: "ss",
    },
    {
      id: 3,
      name: "sss",
    },
  ];
const res = unique(arr, "id").sort(sortBy("id", true));
console.log(res);
res => [
0: {id: 1, name: 's'}
1: {id: 2, name: 'ss'}
2: {id: 3, name: 'sss'}
3: {id: 4, name: 'ssss'}
]
posted @   SKa-M  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示