问题标签 [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 投票
2 回答
1653 浏览

python - Python pickle:腌制对象不等于源对象

我认为这是预期的行为,但想检查一下,也许找出原因,因为我所做的研究是空白的

我有一个函数可以提取数据,创建自定义类的新实例,然后将其附加到列表中。该类仅包含变量。

然后我使用协议 2 作为二进制文件将该列表腌制到一个文件中,稍后我重新运行脚本,从我的源中重新提取数据,我有一个带有我的自定义类实例的新列表,为了测试我将数据保留为源数据一样。

重新加载泡菜文件

现在当我做一个:

这总是回来False,我不知道为什么,如果我打印列表或查看它们看起来完全相同的结构。

任何想法都会很精彩,这是我需要整理的最后一点。

0 投票
2 回答
13433 浏览

php - in_array 如何检查对象是否在对象数组中?

是否in_array()进行对象比较以检查所有属性是否相同?如果$obj1 === $obj2,它会只做指针比较吗?

$obj1->getId()我正在使用 ORM,所以如果它进行对象比较,我宁愿循环测试是否已经在数组中的对象。如果没有,那就in_array更简洁了。

0 投票
3 回答
5393 浏览

ruby - Ruby 中的“==”总是值相等吗?

抱歉,如果重复(我没找到)

这只是为了确认 Ruby 的运算符==总是执行相等比较。IE

将 a 的值与 b 的值进行比较,而不是像 Java 那样,它们是否指向内存中的同一个对象(对于后者,在 Ruby 中,您应该使用a.object_id == b.object_id)。

因此,在 Ruby 中将字符串值与 == 进行比较是安全的(而在 Java 中这样做并不安全)

谢谢

编辑

问题在于任何 Ruby 对象的默认 == 行为,因为它可能误导 Java-C-C++ 程序员,假设 a==b 比较引用本身,而不是引用内容。

无论如何,您可以使用字符串查看此代码

编辑 2

所以,在 Ruby 中,比较

检查 a 和 b 的值

但是,任务

不复制值,而是使 a 和 b 指向同一个对象!

继续前面的代码

0 投票
4 回答
13259 浏览

javascript - Is it fine to use JSON.stringify for deep comparisons and cloning?

After attempting several implementations for deep comparison and copying for JSON-serializable objects, I've noticed the fastest often are just:

I feel like this is cheating, though. Like I'll find some problem that will annoy me on future. Is it fine to use those?

0 投票
3 回答
272 浏览

c# - 反射 - 对象比较和默认值

我正在尝试比较 C# 中的两个复杂对象,并生成一个包含两者之间差异的字典。

如果我有这样的课程:

一个例子,因此:

另一个:

为了获得这些之间的差异,我正在做的事情包括:

有趣的是这条线

使用上面的示例对象,这一行会给我一个默认值 0 SomeOtherId(对于 bools & DateTimes & whathaveyou 的情况相同)。

我正在寻找的是一种newProps仅包含对象中明确指定的属性的方法,因此在上面的示例中,Id并且IsWhatever. 我玩了BindingFlags几次都没有用。

这可能吗?有没有更清洁/更好的方法,或者有什么工具可以帮我省去麻烦?

谢谢。

0 投票
6 回答
85885 浏览

javascript - Checking object equality in Jasmine

Jasmine has built-in matchers toBe and toEqual. If I have an object like this:

and try to compare new Money(200, "USD") and the result of sum, these built-in matchers will not work as expected. I have managed to implement a work-around based on a custom equals method and custom matcher, but it just seems to much work.

What is the standard way to compare objects in Jasmine?

0 投票
2 回答
3970 浏览

java - Java 整数池。为什么?

我到处读到,当您在 Java 中定义一个介于 -128 到 127 之间的整数时,它不是创建一个新对象,而是返回一个已经创建的对象。

除了让新手程序员比较 Integer 对象以查看它们是否是相同的数字之外,我认为这样做没有任何意义==,但我认为这很糟糕,因为他们确信他们认为他们可以将任何 Integer 与 进行比较==,并且还在教学在任何编程语言中都是一个不好的做法:将两个“不同”对象的内容与==.

这样做的原因还有其他原因吗?或者在设计 JavaScript 中的可选分号之类的语言(在我看来)时,这只是一个错误的决定?

编辑:我在这里看到他们解释了行为:为什么整数常量池的行为在 127 处发生变化?

我在问他们为什么将其设计为具有这种行为,而不是为什么会发生这种行为。

0 投票
3 回答
328 浏览

java - equals 方法是否适用于对象?如果是这样,怎么做?

我有一个程序是动物园,在动物园里有爬行动物的分支动物亚群。当我执行 equals 方法时,主程序编译并运行。如果我正在比较对象而不是特别是 int 或 String,我很困惑 java 怎么知道使用 equals 方法?

0 投票
1 回答
2375 浏览

java - Java 对象比较:为纸牌游戏实现 `compareTo()` 方法

我正在使用字符串比较方法“compareTo”制作方法。但是,我有几个关于它是如何工作的问题。

这是 compareTo 方法中我的部分代码。**所以我可以提一下,我收到了很多关于这段代码的在线帮助。当它被解释给我时,它是有道理的。因此,如果这对我有意义,我应该能够以另一种格式重写这段代码。但是,我发现自己无法做到这一点。因此,我正在寻找建议和帮助。

功能

通常是什么让我失望。compareTo 方法到底在做什么?

对于玩家回合,它正在比较两张游戏中的牌 -> 遵循程序逻辑。

我是否可以使用 compareTo 方法比较卡片?

这是我设置类构造函数的方式。

再次,最终确定。我在理解 compareTo 方法的工作原理时遇到问题。并且如果有任何类似的建议来比较玩家牌的另一种方式。

卡片列表来自 2 个单独的类别 -> 套装和等级

/** * ** * ** * ** * ** * ** * ** * ** * ** * 初始化类 Card 之外的对象 * @param rCard * @param sCard * * ** * ** * ** * ** * ** * ** * ** * ** * */ public Card(Rank rCard, Suit sCard) { this.rCard = rCard; 这个.sCard = sCard; }

0 投票
1 回答
806 浏览

javascript - 无法将 JavaScript 变量与 JSON 数据进行比较

我有一个表作为字符串存储在localstorage的 JSON 数据中。我想将此处存储的字段之一与单独的 javascript 变量进行比较。

这是我尝试过的:

但它不起作用。经过一些故障排除后,我认为问题出在比较(goal == goalsObj.goals[i].goal).

这是实际存储在 localStorage 的“目标”中的值:

它是存储在其中的对象数组。

所有这些 'diff'、'duedate' 都是从用户那里获取的 HTML 表单数据。

怎么了?我应该怎么办?