首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lodash differenceBy澄清

Lodash differenceBy澄清
EN

Stack Overflow用户
提问于 2019-09-11 11:21:38
回答 1查看 94关注 0票数 3

我有两个对象数组,我想通过newData找到oldData数组和identifier数组之间的区别,显示差异,其中oldData的标识符与newData数组不同,下面是我的数组:

代码语言:javascript
复制
const newData = [
    {
        "extras": {},
        "identifier": "13",
        "latitude": 39.13063,
        "loiteringDelay": 1000,
        "longitude": -86.58286,
        "notifyOnDwell": false,
        "notifyOnEntry": true,
        "notifyOnExit": true,
        "radius": 30,
    },
    {
        "extras": {},
        "identifier": "18",
        "latitude": 39.13063,
        "loiteringDelay": 1000,
        "longitude": -86.58286,
        "notifyOnDwell": false,
        "notifyOnEntry": true,
        "notifyOnExit": true,
        "radius": 30,
    }

]

const oldData = [
    {
        "identifier": "13",
        "latitude": 39.13063,
        "loiteringDelay": 1000,
        "longitude": -86.58286,
        "notifyOnDwell": false,
        "notifyOnEntry": true,
        "notifyOnExit": true,
        "radius": 30,
    },
    {
        "identifier": "12",
        "latitude": 39.13063,
        "loiteringDelay": 1000,
        "longitude": -86.58286,
        "notifyOnDwell": false,
        "notifyOnEntry": true,
        "notifyOnExit": true,
        "radius": 30,
    }
]

我在这里做的是:

代码语言:javascript
复制
let testDifference = _.differenceBy(newData, oldData, "identifier")

我的期望,我会得到

代码语言:javascript
复制
[
    {
        "identifier": "12",
        "latitude": 39.13063,
        "loiteringDelay": 1000,
        "longitude": -86.58286,
        "notifyOnDwell": false,
        "notifyOnEntry": true,
        "notifyOnExit": true,
        "radius": 30,
    },
]

实际上,我得到的是空数组,我做错了什么?如何使它正确工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-11 11:38:26

我认为您只需要将前两个参数切换到differenceBy,就可以得到预期的结果。您可以将其看作是第一个数组项(),除了(第二个数组项)。

代码语言:javascript
复制
const newData = [{
  "extras": {},
  "identifier": "13",
  "latitude": 39.13063,
  "loiteringDelay": 1000,
  "longitude": -86.58286,
  "notifyOnDwell": false,
  "notifyOnEntry": true,
  "notifyOnExit": true,
  "radius": 30,
}]

const oldData = [{
    "identifier": "13",
    "latitude": 39.13063,
    "loiteringDelay": 1000,
    "longitude": -86.58286,
    "notifyOnDwell": false,
    "notifyOnEntry": true,
    "notifyOnExit": true,
    "radius": 30,
  },
  {
    "identifier": "12",
    "latitude": 39.13063,
    "loiteringDelay": 1000,
    "longitude": -86.58286,
    "notifyOnDwell": false,
    "notifyOnEntry": true,
    "notifyOnExit": true,
    "radius": 30,
  }
];

let whatDelete = _.differenceBy(oldData, newData, "identifier");

console.log(whatDelete);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57888023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档