weixin_43326766 2021-11-30 11:03 采纳率: 0%
浏览 41

数组去重(业务去重和逻辑去重的纪录篇)

记录一下关于数组对象去重的方法记录一下

//1.0      代码1位业务代码去重(比如说传入一个对象,有添加新数组没就添加这个数组中)
let arr [   // 原数组数据对象        ]
let copy = []  // 创建一个新的数组
function (val)  {
   ! copy.some (item=>item.id===val.id) && copy.push (val)  // 其实这一步就已经完成了   代逻辑:some 只要在新数组中找到一个值和传入的值相等,就返回tru 
                                                                                              //e,没有相等就返false,取反,就直接添加数组中即可! 
}
// 2.0 数据去重 (数组对象去重)
let arr = [
{id:1,name:'www',age:18},
{id:2,name:'www',age:17},
{id:1,name:'www',age:16},
]
let obj = {} // 创建一个空对象,利用对象属性值去重
arr.reduce(  (pre,  item)  = >{
obj[item.id] ? ' '  : obj [item.id] = true && pre.push(item)
return  pre 
} ,[  ] )
// 1 利用数组es5的属性reduce方法5个参数(pre,item,index,arr) init(初始对比值),init默认是传入的值,不传就数组的第一个值(注意:如果不传就会数组第一个值和第二个值做对比,会少循环一次.....)具体可以看下reduce的适用方法
// 2 利用属性值的属性做对比 把获取到id值添加对象,有的话,清空,没得话添加一个属性值为true(  或下次添加 )


####  贴上自己喜欢的一句话  
> 一切往事皆为序章,往事成风,段段张张!    ------------ END
  • 写回答

1条回答 默认 最新

  • 音药 2021-11-30 13:54
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 11月30日

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)