标签: object-comparison

JavaScript中的对象比较

在JavaScript中比较对象的最佳方法是什么?

例:

var user1 = {name : "nerd", org: "dev"};
var user2 = {name : "nerd", org: "dev"};
var eq = user1 == user2;
alert(eq); // gives false
Run Code Online (Sandbox Code Playgroud)

我知道如果它们引用完全相同的对象,则两个对象是相等的,但有没有办法检查它们是否具有相同的属性值?

以下方式对我有用,但这是唯一的可能性吗?

var eq = Object.toJSON(user1) == Object.toJSON(user2);
alert(eq); // gives true
Run Code Online (Sandbox Code Playgroud)

javascript comparison object object-comparison

1021
推荐指数
7
解决办法
85万
查看次数

Java中==和equals()之间有什么区别?

我想澄清一下我是否理解正确:

  • == - >是参考比较,即两个对象都指向相同的内存位置
  • .equals() - >计算对象中值的比较

我的理解是正确的吗?

java identity equality object-comparison

592
推荐指数
12
解决办法
62万
查看次数

检查Jasmine中的对象相等性

Jasmine有内置的匹配器toBetoEqual.如果我有这样的对象:

function Money(amount, currency){
    this.amount = amount;
    this.currency = currency;

    this.sum = function (money){
        return new Money(200, "USD");
    }
}
Run Code Online (Sandbox Code Playgroud)

并尝试比较new Money(200, "USD")和和的结果,这些内置的匹配器将无法按预期工作.我已经设法基于自定义equals方法和自定义匹配器实现了一种解决方法,但它似乎很有效.

比较Jasmine中对象的标准方法是什么?

javascript bdd object-comparison jasmine

79
推荐指数
2
解决办法
7万
查看次数

Python:为什么("你好"是"你好")评价为True?

为什么用Python "hello" is "hello"生成True

我在这里阅读以下内容:

如果两个字符串文字相等,则它们被放在相同的内存位置.字符串是不可变的实体.不会造成伤害.

因此,每个Python字符串在内存中只有一个位置?听起来很奇怪.这里发生了什么?

python identity string-comparison object-comparison

56
推荐指数
4
解决办法
2万
查看次数

如何比较EL表达式语言中的两个对象变量?

我正在创建所有语言的下拉列表.列表的默认语言选择将由用户添加的信息确定:

<select>
    <c:forEach items="${languages}" var="lang">
        <c:choose>
            <c:when test="${lang}.equals(${pageLang})">
                <option value="${lang}" selected>${lang}</option>
            </c:when>
            <c:otherwise>
                <option value="${lang}">${lang}</option>
            </c:otherwise>
        </c:choose>
    </c:forEach>
</select>
Run Code Online (Sandbox Code Playgroud)

.equals在EL中似乎不存在.看了一下这里建议我编写自己的函数,然后导入并使用它.因为这只是针对此页面的一个小小的事情,我不想为此开始创建库等.我也不想开始为servlet创建专家对象,并在其中返回这些额外信息.

我唯一能想到的就是从servlet返回整个选项行的实际html,而不仅仅是语言字符串,但这让我觉得很难看,所以我希望有一个更优雅的解决方案.

快速修复EL中两个字符串的最佳方案是什么?

J2EE 1.4教程

jsp jstl el operators object-comparison

44
推荐指数
1
解决办法
12万
查看次数

我如何比较两个整数?

我必须比较两个Integer对象(不是int).比较它们的规范方法是什么?

Integer x = ...
Integer y = ...
Run Code Online (Sandbox Code Playgroud)

我能想到这个:

if (x == y) 
Run Code Online (Sandbox Code Playgroud)

==运营商只比较基准,因此这将仅适用于较低的整数值工作.但也许自动拳击踢......?

if (x.equals(y)) 
Run Code Online (Sandbox Code Playgroud)

这看起来像是一项昂贵的操作.是否有以这种方式计算的哈希码?

if (x.intValue() == y.intValue())
Run Code Online (Sandbox Code Playgroud)

有点冗长......

编辑:谢谢你的回复.虽然我知道现在要做什么,事实是分布在所有现有的答案(甚至是已删除的答案:)),我真的不知道,接受哪一个.所以我会接受最好的答案,它指的是所有三种比较可能性,或者至少是前两种.

java comparison object-comparison

34
推荐指数
5
解决办法
16万
查看次数

如何使用Javascript或lodash对两个对象的属性进行浅层比较?

有没有办法我可以做一个浅层比较,不会下去比较Javascript或lodash中对象内部的对象内容?请注意,我确实检查了lodash,但似乎进行了深入的比较,我不想这样做.

var a = { x: 1, y: 2}
var b = { x: 1, y: 3}
Run Code Online (Sandbox Code Playgroud)

有没有办法比较ab

javascript object-comparison

15
推荐指数
5
解决办法
2万
查看次数

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

是否in_array()做对象比较,它检查所有属性都是一样的吗?如果$obj1 === $obj2它只是做指针比较呢?

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

php object-comparison

13
推荐指数
1
解决办法
1万
查看次数

使用JSON.stringify进行深度比较和克隆是否可以?

在尝试了几个实现深度比较和复制JSON可序列化对象之后,我注意到最快的只是:

function deep_clone(a){
   return JSON.parse(JSON.stringify(a));
};
function is_equal(a,b){
    return JSON.stringify(a) === JSON.stringify(b);
};
Run Code Online (Sandbox Code Playgroud)

不过,我觉得这是作弊.就像我会发现一些会在将来惹恼我的问题.使用它们可以吗?

javascript json equality deep-copy object-comparison

13
推荐指数
2
解决办法
7173
查看次数

Javascript:深度比较

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

var obj = {here: 2};
console.log(deepEqual(obj, obj));
// ? true
console.log(deepEqual(obj, {here: 1}));
// ? false
console.log(deepEqual(obj, {here: 2}));
// ? true
function deepEqual(a,b)
{
  if( (typeof a == 'object' && a != null) &&
      (typeof b == 'object' && b != null) )
  {
     var count = [0,0];
     for( var key in a) count[0]++;
     for( var key in b) count[1]++;
     if( count[0]-count[1] != 0) {console.log('1');return false;}
     for( var key in a)
     {
       if(!(key in b) || …
Run Code Online (Sandbox Code Playgroud)

javascript object-comparison

6
推荐指数
1
解决办法
6870
查看次数