关于对象数组去重以及判断url

var arr=[
	{id:1,url:'https://www.baidu.com'},
	{id:2,url:'http://www.baidu.com'},
	{id:3,url:'http://www.baidu.com/'},
	{id:4,url:'https://www.baidu.com/'},
	{id:5,url:'https://www.google.com'}
];
如上:
数组中有以上5个对象,id可无视。

业务需求是去重:(以下几种情况)
		1.协议不同 内容相同
		2.协议相同 地址相同 后缀多/
		3.协议不同 内容相同 后缀多/
如用于判断即可用find()遍历
 了解:item:当前循环的项。 index:循环项的下标 。 arr:当前循环的数组。 thisvalue:如果传
的话,在callbck函数中this为该值,不穿的话thisundefinedlet isHas=null;
 list.find((item)=>{item.url.replace(/http[s]?:\/\//, '')
 .replace(/\/$/, "")==$('.addFocus').val()
 .replace(/http[s]?:\/\//, '').replace(/\/$/, "")?isHas=true:''})

数组去重
let result = [];
     let obj = {};
     for(let i = 0; i < data.length; i++){
          if(!obj[ data[i].url.replace(/http[s]?:\/\//, '').replace(/\/$/, "")]){
             result.push( data[i]);
             obj[ data[i].url.replace(/http[s]?:\/\//, '').replace(/\/$/, "")]=true;
         }
     }
     
这里可以用replace去掉协议以及最后/在进行比较
replace不会改变原数组的值
result 最后得到的就是去重后的数组
以上数组去重后得到的长度为2的数组
[
	{id:1,url:'https://www.baidu.com'},
	{id:5,url:'https://www.google.com'}
]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值