Javascript使用lodash isEqual比较具有功能的对象

开心果

如果有功能,如何比较两个对象是否相等?lodash的isEqual确实可以很好地工作,直到函数被抛出:

_.isEqual({
    a: 1,
    b: 2
}, {
    b: 2,    
    a: 1
});

// -> true

_.isEqual({
    a: 1,
    b: 2,
    c: function () {
        return 1;
    }
}, {
    a: 1,    
    b: 2,
    c: function () {
          return 1;
    }
});

// -> false
亚当·博杜奇(Adam Boduch)

您确定要比较功能吗?如果您只关心比较不是函数的每个属性,那么使用lodash很容易做到:

var o1 = { a: 1, b: 2, c: function() { return 1; } },
    o2 = { a: 1, b: 2, c: function() { return 1; } };

_.isEqual(o1, o2)
// → false

_.isEqual(_.omit(o1, _.functions(o1)), _.omit(o2, _.functions(o2)));
// → true

功能()函数返回功能属性的列表,并使用省略() 你可以摆脱他们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用TypeScript动态重新映射具有功能的对象?

具有功能参数的Javascript进入innerhtml

使用javascript / lodash遍历嵌套对象的数组

使用Lodash遍历JavaScript对象中的属性

评估Javascript对象中的所有功能

使用具有功能的 asyncawait 模块

使用具有功能组件的命令式 API

PHP-在具有功能的IF语句中使用OR

具有功能的树中的 Lodash 和 deepdash 过滤器

如何使用lodash / underscore.js分割具有特定条件的对象的javascript数组

使用 javascript 或 lodash 过滤具有多个元素及其值的对象数组

无法使用具有功能组件的引用从父级调用子级功能

使用lodash的isEqual()在比较中排除一些属性

如何使用lodash或javascript匹配两个对象?

如何使用JavaScript深度映射对象键(lodash)?

lodash javascript对象仅使用相同的键分配

使用lodash或vanilla javascript计算数组内部的对象属性

更改键并使用lodash将javascript对象分组

使用lodash映射/变换对象的javascript数组

Javascript或lodash:使用嵌套数组的值过滤对象数组

具有功能参数的对象破坏

三元(如果在具有功能的Javascript中)

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

使用具有功能的pygame进行角色动画的问题

在MVVM WP8 c#/ xaml中使用具有功能的控件

如何使用仅具有功能的.py文件制作Sphinx文档?

如何在鱼壳中使用具有功能的xargs?

Spark Dataframe,使用其他列添加具有功能的新列

Clojure使用零或一个输入运行具有功能的多个线程