一天一个仿lodash函数实现-union
2022/7/1 6:49:41
本文主要是介绍一天一个仿lodash函数实现-union,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
union将传入的参数数组进行合并,生成一个新数组,虽然这种用map来做可能快一些吧,但不能保证元素加入的顺序,所以可以考虑通过遍历的方式,不断从收集的数组里查找遍历到的元素是否存在,不存在则加入(打不过就加入)。
function union(...arrs){ return arrs.reduce((pre, cur)=>{ const result = pre; cur.forEach(item=>{ if(!result.includes(item)){ result.push(item) } }) return result; }, []) } function unionBy(...args){ const arrs = args.slice(0, args.length-1); const it = args[args.length-1]; const iteratee = typeof it === 'string'?val=>val[it]:it; return arrs.reduce((pre, cur)=>{ const result = pre; cur.forEach(item=>{ if(!result.some(u=>iteratee(u)===iteratee(item))){ result.push(item) } }) return result; }, []) } function unionWith(...args){ const arrs = args.slice(0, args.length-1); const comparator = args[args.length-1]; return arrs.reduce((pre, cur)=>{ const result = pre; cur.forEach(item=>{ if(!result.some(u=>comparator(u, item))){ result.push(item) } }) return result; }, []) }
这篇关于一天一个仿lodash函数实现-union的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南