前端及其优雅的去重方式
2024-01-03 19:41:23
核心思路:将一个值的的类型+值作为key
代码如下:
let obj={}
return arr.filter(item => {
return obj.hasOwnProperty(typeof item + item) ?
false : (obj[typeof item + item] = true)
})
arr就是需要筛选的数据
相较于new Set()方法,能区分出{},{}重复的筛选,new Set需要对对象进行重复的判断
但是依然有一些吹毛求疵的缺点:
-
NaN 不同于自身: NaN(Not a Number)是 JavaScript 中一个特殊的值,而 NaN 与自身不相等。但是,该函数将 NaN 视为相等,因为它使用
typeof item + item
作为对象的键。 -
对象引用不同于自身: 对象是引用类型,即使两个对象具有相同的结构和值,它们也是不相等的。但是,该函数会将两个不同的对象视为相等,因为它仅仅检查了对象的引用而不是内容。
-
null 和 undefined 视为相等: 在 JavaScript 中,null 和 undefined 被视为相等的,但是该函数会将它们视为不同的值。
文章来源:https://blog.csdn.net/qq_36566924/article/details/135370674
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!