Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有预先构建的函数来检查两个对象在JavaScript中是否具有相同的属性?_Javascript_Object - Fatal编程技术网

是否有预先构建的函数来检查两个对象在JavaScript中是否具有相同的属性?

是否有预先构建的函数来检查两个对象在JavaScript中是否具有相同的属性?,javascript,object,Javascript,Object,我已经问过了,但这是关于对象的 假设我有两个对象 firstObject = {0: 1, 1: 2, 2: 3, 4: 4, 4: 5}; secondObject = {0: 5, 1: 4, 2: 3, 4: 2, 4: 1}; 我想知道它们是否包含相同的属性值,而顺序和属性名称并不重要。(对于上面的示例,函数应该返回true。)将对象转换为数组不是一个选项 我知道我可以编写一个函数来对它们进行排序,然后循环检查它们,但是是否有一个预构建的函数用于此 S.I已经注意到了,但是POST只

我已经问过了,但这是关于对象的

假设我有两个对象

firstObject  = {0: 1, 1: 2, 2: 3, 4: 4, 4: 5};
secondObject = {0: 5, 1: 4, 2: 3, 4: 2, 4: 1};
我想知道它们是否包含相同的属性值,而顺序和属性名称并不重要。(对于上面的示例,函数应该返回true。)将对象转换为数组不是一个选项

我知道我可以编写一个函数来对它们进行排序,然后循环检查它们,但是是否有一个预构建的函数用于此

S.I已经注意到了,但是POST只考虑在相同的属性名称下对象是否相等,而在我的示例中您可以看到,我只考虑属性值而不考虑属性名称。

下划线。 在两个对象之间执行优化的深度比较,以确定它们是否应被视为相等

var stooge = {name: 'moe', luckyNumbers: [13, 27, 34]};
var clone  = {name: 'moe', luckyNumbers: [13, 27, 34]};
stooge == clone;
=> false
_.isEqual(stooge, clone);
=> true

是的,有。看看下划线或lodash。编辑:再次阅读时,您似乎只关心属性值,而不关心名称。不确定这些库,但互联网上肯定有人为此写了一些东西。请澄清,您只对属性值感兴趣,而不是属性名称。“秩序”这个词用错了。不同的顺序是
{foo:…,bar:…}
vs
{bar:…,foo:…}
对象键的顺序不保证。@joews:与问题无关,OP只是使用了错误的术语。但现在是重新学习JavaScript的时候了:在下一个ECMAScript版本中,顺序似乎得到了保证。我明白了,我误解了这个问题。OP似乎只关心对象具有相同的属性值。不必将属性分配给相同的属性(至少我是这样理解这个问题的)。我已经测试过了。订单更改时,您提供的比较似乎不起作用。