首页 > 其他分享 >数组去重,属性相同的对象也算重复 Object.is使用

数组去重,属性相同的对象也算重复 Object.is使用

时间:2024-11-28 11:14:54浏览次数:6  
标签:const value1 Object value value2 数组 false 属性

console.log(Object.is(+0,-0)) //false    但是控制台为true
console.log(Object.is(NaN,NaN)) // true  但是控制台是false
const uniqueArray = (arr)=>{
    const result = []
    outer:for(const item of arr){
        for(r of result){
            if(equals(r,item)){
                continue outer
            }
        }
        result.push(item)
    }
}
function isPrimitive(value){
    return value === null || (typeof value !== 'object' && typeof value !== 'function')
}
function equals(value1,value2){
    if(isPrimitive(value1) && isPrimitive(value2)){
        return Object.is(value1,value2)
    }
    const entries1 = Object.entries(value1)
    const entries2 = Object.entries(value2)
    if(entries1.length !== entries2.length){
        return false
    }
    for(const [key,value] of entries1){
        if(!equals(value,value2[key])){
            return false
        }
    }
}

  

标签:const,value1,Object,value,value2,数组,false,属性
From: https://www.cnblogs.com/MDGE/p/18573884

相关文章

  • html的标签属性bgcolor支持简写吗?如:bgcolor="#F00"
    是的,bgcolor="#F00"是支持的简写形式。它代表十六进制颜色代码#FF0000,也就是红色。虽然这种简写形式在早期HTML版本中被广泛使用,并且许多浏览器仍然支持,但它已经过时且不被推荐。W3C标准建议使用CSS的background-color属性来设置背景颜色。以下是几种设置背景颜色......
  • 举例说明css有哪些简写的属性和属性值?
    CSS提供了许多简写属性,可以同时设置多个相关属性的值,从而减少代码量并提高可读性。以下是一些常用的CSS简写属性和属性值的示例:1.font属性:font属性可以同时设置字体、字号、行高、字体粗细、字体样式等多个属性。示例:/*longhand*/font-style:italic;font-varia......
  • js对象和类型化制数组互相转换的方法
    js对象和类型化数组互相转换的方法//对象转化为类型化数组functionjsonToTypedArray(obj){constjsonString=JSON.stringify(obj)constencodedString=encodeURIComponent(jsonString)letbase64=btoa(encodedString)constencoder=newTe......
  • [Vue] toRef: convert reactive to ref in order to destructure reactive object use
    import{reactive,computed}from"vue"exportdefault{setup(){constevent=reactive({capacity:4,attending:["Tim","Bob"],spacesLeft:computed(()=>{returnevent.capacity......
  • Java程序基础⑤Java数组的定义和使用+引用的概念
    目录1.Java数组的基本概念1.1数组的定义1.2数组存在的意义1.3数组的使用1.4二维数组2. 引用类型+JVM的内存分布2.1JVM的内存分布2.2 基本数据类型和引用型数据类型的区别2.3引用注意事项2.4传值传递3.数组总结和应用场景3.1一维数组和二维数组的存储3......
  • 【测试平台开发】Vue指令、属性绑定、事件绑定学习教程
    示例1:如何使用Vue的数据绑定、指令(如v-text和v-html)以及如何通过v-pre指令来跳过元素的编译过程。此外,它还演示了如何在Vue组件中定义和使用数据对象。<!DOCTYPEhtml><html> <head> <metacharset="utf-8"><!--设置文档的字符编码为UTF-8--> <title></title><!--标题......
  • 数组使用
    一.动态初始化数组类型数组名【】=new数组类型【大小】或数组类型【】数组名=new数据类型【大小】(语法:数据类型数组名[];也可以数据类型[]数组名)步骤:1.创建一个数组第一种动态分配方式:doublearr[]=newdouble[5]double[]arr=newdouble[5]第二种动态......
  • shell数组 Linux分文件 make工具
    shell中的数组shell支持稀疏数组格式:数组名=(初始值1初始值2,……)数组名=([下标]=初始值[下标]=初始值……)下标可以不连续arr=([10]=10[0]=0)访问数组中的元素${数组名[下标]}-->获取数组中指定下标元素的值获取数组中的所有元素${数组名[*]}--->获取数组中所......
  • C++学习——函数返回数组
    首先不推荐函数返回数组,在C++中,函数不能直接返回一个本地数组,因为数组是分配在栈上的,当函数返回时,其栈帧会被销毁,因此返回的数组指针将会指向一个已释放的内存区域,这是未定义行为。不过,有几种方法可以用来从函数返回数组:文章目录1.返回指向数组的指针2.使用标准库容......
  • css 判断在支持某些属性的情况下再添加样式
    :root{--safe-area-inset-top:0px;--safe-area-inset-right:0px;--safe-area-inset-bottom:0px;--safe-area-inset-left:0px;--safe-area-inset-constant-top:0px;--safe-area-inset-constant-right:0px;--safe-area-inset-constant-bottom:0px;......