首页 > 其他分享 >comparing ECMA6 sets for equality

comparing ECMA6 sets for equality

时间:2024-11-03 13:21:03浏览次数:6  
标签:Set false xs comparing new equality ys ECMA6 const

题意:"比较 ECMA6 集合的相等性"

问题背景:

How do you compare two javascript sets? I tried using == and === but both return false.

"如何比较两个 JavaScript 集合?我尝试使用 == 和 ===,但两者都返回 false。"

a = new Set([1,2,3]);
b = new Set([1,3,2]);
a == b; //=> false
a === b; //=> false

These two sets are equivalent, because by definition, sets do not have order (at least not usually). I've looked at the documentation for Set on MDN and found nothing useful. Anyone know how to do this?

"这两个集合是等价的,因为根据定义,集合没有顺序(至少通常没有)。我查看了 MDN 上关于 Set 的文档,但没有找到有用的信息。有人知道该怎么做吗?"

问题解决:

Try this:        尝试这种方式

const eqSet = (xs, ys) =>
    xs.size === ys.size &&
    [...xs].every((x) => ys.has(x));

const ws = new Set([1, 2, 3]);
const xs = new Set([1, 3, 2]);
const ys = new Set([1, 2, 4]);
const zs = new Set([1, 2, 3, 4]);

console.log(eqSet(ws, xs)); // true
console.log(eqSet(ws, ys)); // false
console.log(eqSet(ws, zs)); // false

标签:Set,false,xs,comparing,new,equality,ys,ECMA6,const
From: https://blog.csdn.net/suiusoar/article/details/143450340

相关文章

  • 【处理元组有关的题型的技巧】codeforces 1677 A. Tokitsukaze and Strange Inequalit
    题意第一行输入一个正整数\(T(1\leqT\leq1000)\),代表共有\(T\)组测试用例,对于每组测试用例:第一行输入一个正整数\(n(4\leqn\leq5000)\),第二行输入\(n\)个正整数\(p_i(1\leqp_i\leqn)\)。对于\(1\leqi<j<k<l\leqn\),若有\(a_i<a_k,a_j>a_l\)成......
  • Comparing Multi-agent AI frameworks
    ComparingMulti-agentAIframeworkshttps://sajalsharma.com/posts/overview-multi-agent-fameworks/AComparativeOverviewTobetterunderstandthedifferencesandapplicationsoftheseframeworks,let’sexaminetheminacomparativetable:FeatureAutoGe......
  • LEAN 类型系统属性 之 定义上相等的非确定性(Undecidability of Definitional Equality
        由于定义上相等(DefinitionalEquality)作用在所有情况,由此,当遇到不一致(Inconsistent)的时候,会导致其结果是不确定的,即会无限展开(unfoldingforever)下去。    原文中,是通过一个定义在自然数(ℕ)的大于关系(>)上的可达类型(AccessibilityType)来论证,这个看原文很好......
  • Panasonic Programming Contest 2020 C (Sqrt Inequality) 题解
    题目大意输入三个整数\(a\),\(b\),\(c\),如果\(\sqrta+\sqrtb<\sqrtc\)成立,输出Yes,否则输出No。样例输入#1239输出#1No\(\sqrt2+\sqrt3<\sqrt9\)不成立。输入#22310输出#2Yes\(\sqrt2+\sqrt3<\sqrt10\)成立。分析错误思路首先,由......
  • 何谓相等 (Equality),在类型理论(Type Theory)语境下
    两个元素a,b相等,即a=b,就是a和b是被完全一样地构建出来的。在《类型(Type)是可构建集合(constructiveset)》 一文中,说到,类型中的每个元素都是可构建的,因此,如果在一个类型中的两个元素a,b,是通过一样的方式构建出来,包括其构建时的输入,构建函数,那么,就说a等于b,a=b。......
  • A. Tokitsukaze and Strange Inequality(dp版)
    链接https://codeforces.com/problemset/problem/1677/A题目思路这题感觉还是挺有难度的(为啥题解都说不难Orz),给我启发最大的是这句话:具体怎么处理呢?把i按照n->1的顺序遍历,然后j从反方向遍历:i+1->n。求S[i][j]时用S[i+1][j],因为S对应的是以j为结尾的,然后在遍历中相当于不知......
  • [题解]AT_abc250_e [ABC250E] Prefix Equality
    思路对于这种题目,通常会想到用哈希维护。由于集合相同与\(a_{1\simx}\),\(b_{1\simy}\)的顺序无关,所以对于我们的哈希函数\(h(x)\)必定需要用一种有交换律的符号。首先想到的当然是加法,但是不太好实现,因为这些数太大了,不因会爆unsignedlonglong,还会爆__int128,所以不......
  • Equality in OOP and ADT
    在现实物理世界中,任何对象都是不相等的但是对于人类语言,或者对于数学世界,完全可以有很多相同的东西,例如√9和3表现了相等的数值,我们完全可以认为两者是相同的那么在软件世界中,Java的==和equals()有什么区别?在很多场景下,需要判定两个对象是否“相等”,例如:判断某个Collectio......
  • D. A BIT of an Inequality
    原题链接题解1.如果\(x\oplusy\gtx\),则\(y\)的最高位对应的\(x\)一定是\(0\)2.$f(x,y)\oplusf(y,z)\gtf(x,z)$等价于\(f(x,z)\oplusa_y\gtf(x,z)\)3.\(x\in[1,y]\)则\(x-1\in[0,y-1]\)code#include<bits/stdc++.h>usingnamespacest......
  • F - Product Equality
    F-ProductEqualityProblemStatementYouaregiven$N$integers$A_1,A_2,\dots,A_N$.Findthenumberoftriplesofintegers$(i,j,k)$thatsatisfythefollowingconditions:$1\lei,j,k\leN$$A_i\timesA_j=A_k$Constraints$1\leN\......