去除数组对象中重复的值

本文介绍如何使用JavaScript编写一个通用函数,通过字符串化对象属性并排序,从数组中删除重复的对象实例。适合处理接口返回数据中避免渲染重复项的需求。

问题背景:

当我们请求接口拿到数据渲染到页面上时,我们不想将重复的数据也渲染到页面上,这时我们就需要将返回的数据做一些简单的处理。
如下是返回的数据,并非真实数据,仅作演示用:

	var data = [
		{ name: "小三", age: 20 },
        { name: "小王", age: 10 },
        { name: "小王", age: 10 },
        { name: "小张", age: 15 },
       	{ name: "小张", age: 15 },
     ];

看到上面data中的数据有些重复的,怎么将重复的数据去除呢?封装一个通用方法来实现我们的需求

function deteleObject(obj) {
  var uniques = [];
  var stringify = {};
  for (var i = 0; i < obj.length; i++) {
    var keys = Object.keys(obj[i]);
    keys.sort(function (a, b) {
      return Number(a) - Number(b);
    });
    var str = "";
    for (var j = 0; j < keys.length; j++) {
      str += JSON.stringify(keys[j]);
      str += JSON.stringify(obj[i][keys[j]]);
    }
    if (!stringify.hasOwnProperty(str)) {
      uniques.push(obj[i]);
      stringify[str] = true;
    }
  }
  uniques = uniques;
  return uniques;
}
console.log(deteleObject(data));
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值