我想比较两个OBJ之间的区别,但忽略了一些键

发布于 2025-02-07 08:08:49 字数 670 浏览 2 评论 0原文

我正在使用lodash比较从邮递员返回的两个对象,但我想忽略动态值(page_view deletion.update_time )。我该怎么做?我已经尝试将属性名称传递到省略中,但它行不通...我该如何解决此问题?谢谢。

var obj1 = {
  name: "James",
  age: 17,
  page_view: "2",
  creation: "13-03-2016",
  deletion: {
    "article_id": 4469568,
    "update_time": 1226,
  }
}
var obj2 = {
  name: "James",
  age: 17,
  page_view: "62",
  creation: "13-03-2016",
  deletion: {
    "article_id": 4469568,
    "update_time": 12265,
  }
}

var result = _.isEqual(
  _.omit(obj1, ['page_view', 'update_time']),
  _.omit(obj2, ['page_view', 'update_time'])
);
if (!result) {
  pm.expect.fail("Pro and Sta are different")
}

I'm using Lodash to compare two objects returned from Postman but I want to ignore the dynamic values (page_view and deletion.update_time). How can I do this? I've tried passing in the property names into omit but it's not working... how can I resolve this issue? Thank you.

var obj1 = {
  name: "James",
  age: 17,
  page_view: "2",
  creation: "13-03-2016",
  deletion: {
    "article_id": 4469568,
    "update_time": 1226,
  }
}
var obj2 = {
  name: "James",
  age: 17,
  page_view: "62",
  creation: "13-03-2016",
  deletion: {
    "article_id": 4469568,
    "update_time": 12265,
  }
}

var result = _.isEqual(
  _.omit(obj1, ['page_view', 'update_time']),
  _.omit(obj2, ['page_view', 'update_time'])
);
if (!result) {
  pm.expect.fail("Pro and Sta are different")
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

別甾虛僞 2025-02-14 08:08:49

您需要在子对象上指定此内容:

var obj1={name:"James",age:17,page_view:"2",creation:"13-03-2016",deletion:{"article_id":4469568,"update_time":1226,}}
var obj2={name:"James",age:17,page_view:"62",creation:"13-03-2016",deletion:{"article_id":4469568,"update_time":12265,}}

const stripDynamicValues = o => {
  let toCompare = _.omit(_.cloneDeep(o), "page_view");
  // Here, you need to work explicitly on the sub-object
  toCompare.deletion = _.omit(toCompare.deletion, "update_time");
  return toCompare;
};

var result = _.isEqual(stripDynamicValues(obj1), stripDynamicValues(obj2));

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>

You need to specify this on the sub-object:

var obj1={name:"James",age:17,page_view:"2",creation:"13-03-2016",deletion:{"article_id":4469568,"update_time":1226,}}
var obj2={name:"James",age:17,page_view:"62",creation:"13-03-2016",deletion:{"article_id":4469568,"update_time":12265,}}

const stripDynamicValues = o => {
  let toCompare = _.omit(_.cloneDeep(o), "page_view");
  // Here, you need to work explicitly on the sub-object
  toCompare.deletion = _.omit(toCompare.deletion, "update_time");
  return toCompare;
};

var result = _.isEqual(stripDynamicValues(obj1), stripDynamicValues(obj2));

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文