【问题标题】:Print out properties who don't have the same value打印出不具有相同值的属性
【发布时间】:2017-06-16 12:56:35
【问题描述】:

我有这个功能,我使用 lodash 来检查 2 个对象是否相同。

private checkForChanges(): boolean {
    if (_.isEqual(this.definitionDetails, this.originalDetails) === true) {
        return false;
    } else {
        return true;
    }
}

我想知道是否可以打印出彼此不同的属性(以防对象不相等)

我同时使用 lodash 和 JQuery 以防它有帮助

【问题讨论】:

标签: javascript angular typescript lodash


【解决方案1】:

由于比较的可能性多种多样,因此没有简单的方法。 如果你查看 lodash 源代码,你就会有一个想法。

但是,如果您知道自己在比较什么,就可以简化任务。例如,比较总是在普通的、浅层的对象之间进行。 How to determine equality for two JavaScript objects?Object comparison in JavaScript有一些想法。

额外说明:如果只需要返回结果,则不需要if

private checkForChanges(): boolean {
    return !_.isEqual(this.definitionDetails, this.originalDetails);
}

【讨论】:

    【解决方案2】:

    https://lodash.com/docs/#isEqual 不需要检查 true 如果条件 lodash 将返回 true/false

     private checkForChanges(): boolean {
        if (_.isEqual(this.definitionDetails, this.originalDetails)) {
            return false;
        } else {
            return true;
        }
     }
    

    【讨论】:

    • 感谢您的建议,但这不是我问题的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多