Javascript 【基础】对象数组去重

直接上代码

//对象数组去重
function	arrayReSet(jsonArray) {
		let json = jsonArray; //两个数组对象合并
		let newJson = []; //盛放去重后数据的新数组
		console.log(json)
		for (let i = 0; i < json.length; i++) { //循环json数组对象的内容
			let flag = true; //建立标记,判断数据是否重复,true为不重复		
			for (let j = 0; j < newJson.length; j++) { //循环新数组的内容
				if (JSON.stringify(json[i]) === JSON.stringify(newJson[j])) { //让json数组对象的内容与新数组的内容作比较,相同的话,改变标记为false
					flag = false;
				}
			}
			if (flag) { //判断是否重复
				newJson.push(json[i]); //不重复的放入新数组。  新数组的内容会继续进行上边的循环。
			}
		}

		return newJson
	}

测试:

var array=[
{a:1,b:2},
{a:1,b:2},
{a:1,b:2},
{a:1,b:2},
{a:1,b:2},
{a:123,b:2},
{a:1,b:2},
{a:234,b:2},
{a:123,b:2},
{a:234,b:2},
]

console.log(arrayReSet(array))

输出

0: {a: 1, b: 2}
1: {a: 123, b: 2}
2: {a: 234, b: 2}

在这里插入图片描述

优化

JSON.stringify(json[i]) == JSON.stringify(newJson[j])
其实使用 JSON.stringify 效率是非常低的, 最好在每个对象里面加一个 id ,判断的时候使用 id 判断即可 。
json[i].id == newJson[j].id


 //对象数组去重
function	arrayReSet(jsonArray) {
		let json = jsonArray; //两个数组对象合并
		let newJson = []; //盛放去重后数据的新数组
		console.log(json)
		for (let i = 0; i < json.length; i++) { //循环json数组对象的内容
			let flag = true; //建立标记,判断数据是否重复,true为不重复		
			for (let j = 0; j < newJson.length; j++) { //循环新数组的内容
				if (json[i].id === newJson[j].id) { //让json数组对象的内容与新数组的内容作比较,相同的话,改变标记为false
					flag = false;
				}
			}
			if (flag) { //判断是否重复
				newJson.push(json[i]); //不重复的放入新数组。  新数组的内容会继续进行上边的循环。
			}
		}

		return newJson
	}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值