问题标签 [object-comparison]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1142 浏览

java - 如何比较两个复杂对象并忽略空字符串和空字符串?

我需要断言两个复杂对象,其中可能包含原始对象和 n 级对象。所以我用谷歌搜索并选择了一个图书馆unitils。但我有条件需要将空字符串和空字符串视为相等。但这里它只支持ReflectionComparatorMode.IGNORE_DEFAULTS. 设想:

错误:

我需要添加一个将空字符串和空字符串视为相等的规则。

对于我的情况,是否有任何可能的解决方案。

0 投票
1 回答
40 浏览

javascript - 与另一个实例比较时,我的类实例如何隐式返回一个数字?

看这个例子:

正如您在日期对象中看到的,当您比较两个实例时,它们会隐式返回getTime()此实例的方法。

我想对我的对象做完全相同的事情。

想象一下我的课是这样的:

我想当我比较我的类的两个实例时,然后比较它们的myNumber()方法的值。

0 投票
1 回答
15421 浏览

javascript - Javascript:深度比较

我正在检查这个问题Javascript深度比较 问题提问者的解决方案并没有说服我所以我试图分析问题并想出了那个

此代码未通过最后一次测试(console.log(deepEqual(obj, {here: 2}))),但如果对象具有分别相等的键和值,尽管它们在内存中是不同的实例,但考虑对象深度相等的逻辑并不能说服我。我的“解决方案”有问题还是错误在于练习的假设?我链接的问题中提到的代码是否有效?

hikinthru 忘记提及的资源 ( http://eloquentjavascript.net/04_data.html#exercise_deep_compare )

0 投票
1 回答
64 浏览

java - Java找到同一类的不同对象之间的最大属性

我试图找出哪个仓库的每个零件数量最多。我设置了一个下面定义的超类。

我有六个子类,我将展示一个的定义,除了名称字段之外,它们都相同。

例如,我试图part1在所有六个班级之间进行比较。我设置了函数来返回每个部分的值,但是如果(Atlanta.getPart1() > Chicago.getPart1() && Atlanta.getPart1()> Denver.getPart1())...有一种方法可以找到哪个对象具有每个属性的最大值,而不必为每个组合和每个部分写出它,那真的很糟糕?

任何帮助将不胜感激。

0 投票
1 回答
277 浏览

java - Comparison of nested properties

Let's say I have two objects with property Customer which is object that has property ID. How would you compare those two object. I tried to write some common java if statement, but is long and really clumsy.

I tried something like this

but it fails if getCustomer of one object returns null(this is for cases the object is for anonymous customer, thus NullPointerException occurs). How can I write it in the most readable way. Can I somehow utilize java Optional??

UPDATE: Problem is I'm comparing uncomparable. O1 and o2 are different classes. In this case the primal flaw is that I cannot use EqualsBuilder at all.

Maybe I can use this, which is really not more readable then if statement.

0 投票
1 回答
42 浏览

javascript - 概念:比较对象和数组,如 JavaScript 中的字符串和数字

有没有办法通过字符串或数字等字面值来比较两个未引用的对象?

_is = function (a, b) { /* Code */ }

这可以适用于任何对象类型,甚至是自定义对象。

_is(new X("a"), new X("a")); // Returns True;

_is(new X("a"), new Y("a")); // Returns False

您可以将其转换为字符串,但这会很草率。

JSON.stringify({ x: "a" }) == JSON.stringify({ x: "a" }); // Returns True

也许有一种方法可以以编程方式读取对象的每个键、子键和值,并以这种方式进行比较。

有任何想法吗?

0 投票
3 回答
1489 浏览

angularjs - AngularJS - 按任何属性过滤

我有一个应用程序,可以在其中显示带有 AngularJS 的项目列表。我正在尝试在此列表上进行简单搜索,但它会搜索该项目内的所有内容。一个项目的例子:

在列表中我只写了根项目的名称,所以parent.name不会出现。

问题

但是,如果我使用 AngularJS 过滤器按“项目 B”进行搜索,它仍然会出现,因为内部属性具有此字符串。

我试过的

我已经放置了一个对象引用,如下所示(val输入的文本在哪里):

然后,在我的 DOM 上:

但是,这适用于条件 AND,所以它只显示如果两者都有,name并且userval

我需要的

我想获取输入文本并进行搜索以根据给定的对象属性(复数形式)过滤此列表。

所以,在这个例子中,如果我写“项目 A”或“用户 C”(或者只是“A”或只是“C”等等),这个项目应该出现,但如果我写“B”,则不会出现,因为没有nameuser有这封信。

在这种情况下,我需要它来获取参考对象,Ctrl.searchObj并检查对象的任何给定属性是否包含val在过滤对象的相同结构中。

当然,这应该在对象的更深层次上起作用,所以我可以定义searchObj如下,并且仍然能够得到过滤后的对象内部是否具有该结构:

在这种情况下,它应该显示其parent.name属性包含单词“Item”的那些项目。

如果您需要更多信息,请告诉我!

谢谢!

0 投票
4 回答
60 浏览

java - 将带有内容列表的对象与另一个对象进行比较

我有一个包含内容列表的对象,另一个包含内容的对象没有列表,如下面的代码

现在想比较这两个,看看allUsersLoginInfo中是否存在loginInformation的元素

LoginInformation 是一个模型类。

它有名称和卷号。

因此,allUserLoginInfo 是一个列表,其中包含 Name 和 Rollnumber 的多个值。

现在,我想比较一下 allUserLoginInfo 中是否存在 loginInformation 的任何值(即,Name 或 RollNumber 的值)然后给我 true else false 注意没有值是相等的。

提前致谢

0 投票
2 回答
2612 浏览

javascript - 如何使用循环将两个对象与嵌套的对象数组进行比较

我有两个对象,假设

如上面给出的示例,两个对象中的键序列不同。另外,在比较时我不想和

我想使用 for...In 或 for...Of 之类的循环来比较它们

这是我尝试过的,

我没有得到真正的结果。当它将 A.areOfInterest 与 B.areOfInterest 进行比较时,它给出了 undefined

0 投票
1 回答
354 浏览

c# - 当 Equality Comparer 基于 OR 操作时编写 GetHashCode() 的正确方法?

我正在尝试为具有 3 个字段的简单类编写平等比较器,如下所示:

我的两个对象NumberClass相等的条件是如果Obj1.A == Obj2.A || Obj1.B == Obj2.B(换句话说,OR),Obj1 和 Obj2 是NumberClass.

我可以按如下方式轻松编写Equals()比较器,但我不知道如何处理我的GetHashCode()方法。

如果我的平等条件是 AND 而不是 OR,我可以写GetHashCode()如下,取自这个 SO answer

但这显然不适用于 OR,因为只有其中一个AB相等就足以使我的相等条件为真。

我能想到的一种解决方法是始终返回相同的值GetHashCode()Distinct()我这对于 LINQ 操作(如

处理这种情况的正确方法是什么?

PS为了测试,假设我的 Main() 如下:

我希望distinct只包含列表中的第一个元素。