Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >比较对象和提取深度差异

比较对象和提取深度差异
EN

Stack Overflow用户
提问于 2019-02-06 14:02:54
回答 1查看 540关注 0票数 0

在我的Node/MongoDB后端,我正在做一些后处理,以便在记录中发生变化时生成注释。因此,第一步是获取记录的prepost更新版本。然后,我想要比较这两个文件,以确定记录中发生更改的部分。我下面的解决方案是有效的--但它返回包含更改的根级属性。我需要比这个更细粒度的东西--因为我有一个数组--“历史”,它嵌入到根级元素中,也是一个数组--“服务”。

那么,以我下面的两个对象为例,有没有一种方法可以只提取obj2的“历史”数组中的最后一个元素--因为,在本例中,这就是更改的内容,我需要键入这些内容才能生成笔记?

顺便说一句,如果有下划线或Lodash方法来处理这个问题,我也完全接受。

下面是我现在拥有的代码:

代码语言:javascript
运行
AI代码解释
复制
const obj = {
  _id: 1,
  services: [
    {
      _id: 23,
      service: "serviceOne",
      history: [
        {
          _id: 33,
          stage: "stageOne"
        }
      ]
    },
        {
      _id: 24,
      service: "serviceTwo",
      history: [
        {
          _id: 44,
          stage: "stageOne"
        }
      ]
    },
  ]
};

const obj2 = {
  _id: 1,
  services: [
    {
      _id: 23,
      service: "serviceOne",
      history: [
        {
          _id: 33,
          stage: "stageOne"
        }
      ]
    },
        {
      _id: 24,
      service: "serviceTwo",
      history: [
        {
          _id: 45,
          stage: "stageTwo"
        },
        {
          _id: 44,
          stage: "stageOne"
        }
      ]
    },
  ]
};

let diff = Object.keys(obj).reduce((diff, key) => {
  if (obj[key] === obj2[key]) return diff
  return {
    ...diff,
    [key]: obj2[key]
  }
}, {})

console.log('diff: ', diff);

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-06 14:11:41

你可以使用解构赋值

代码语言:javascript
运行
AI代码解释
复制
let {services:[,{history:[...data]}]} = obj2;

console.log(data.pop());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54555427

复制
相关文章
巧用滑动选项卡,提升用户体验
目前针对移动设备的Cordova应用程序和渐进式的Web应用程序非常流行。提升用户体验和交互的关键是传递出原生的视觉效果和感觉,这并不总是一件容易的事情。当然,新建有样式装饰的多选复选框(checkboxes)和单选按钮(radio buttons)是很容易的,但是提供我们所追求的质量飞跃的真正特性是基于用户交互的。
疯狂的技术宅
2019/03/27
1.4K0
使用 FocusScopeNode 在 TextFormFields 之间轻松移动焦点
Form和TextFormField是在 Flutter 中输入文本时非常有用的小部件。
徐建国
2021/08/09
1.3K0
移动端滑动切换
预览 scss样式 @import 'common';//初始样式,可以不需要(这是我项目需要) /*body默认铺满整个屏幕*/ body{ position: absolute;
潇洒哥和黑大帅
2018/10/23
1.9K0
移动端滑动切换
移动端页面在IOS里滑动不顺畅解决办法
开发移动端的同学可能都知道,当在你用overflow-y:scorll属性的时候,内容超出容器溢出滚动的效果很迟顿,特别是在IOS系统里,通常情况下,我们为了追求好的用户体验,会使用屏幕滚动插件better-scroll了,这个插件是真心好用,但是有些情况下我们可能并不想那么麻烦,而且页面的体验要求也没有那么高,下面给大家介绍一个简单偷懒的办法.
越陌度阡
2020/11/26
2.3K0
通过剪贴板在R和Excel之间移动数据
相信大家都用Excel处理过数据,对于使用R的人来说,更是经常需要从Excel中把数据读入到R中做进一步处理。虽然Excel统计和绘图也很强大,但是还是是有一些局限性的。
生信交流平台
2020/08/06
1.8K0
通过剪贴板在R和Excel之间移动数据
滑动窗口循环移动接收数据
缓存区数据循环 缓存区循环读取数据,处理拆包和解包的网络字节流处理示例 取模运算,循环内存 recvLength += m_serialPort.Read(tcmsBuf, (checkIndex+r
sofu456
2020/03/18
1K0
双指针/滑动窗口/移动队列
Never stop learning, beacuse life never stops teaching. 不要停止学习, 因为人生总有东西可教 there is always more you don`t know. 无重复字符最长子串 双指针/滑动窗口/移动队列 无重复字符最长子串 package cn.com.codingce.aaclengthoflongestsubstring; import java.util.Arrays; import java.util.HashMap; impor
后端码匠
2021/08/20
4800
原生JS实现移动端滑动反弹
什么是 Touch滑动?就是类似于 PC端的滚动事件,但是在移动端是没有滚动事件的,所以就要用到 Touch事件结合 js去实现,效果如下:
grain先森
2019/03/29
10.6K0
原生JS实现移动端滑动反弹
Material Design —Tabs
自上次参加完回音分享会后,我下定决心要洗心革面乖乖打基础,于是开启了这个part,争取两个月不间断更新,写完Material Design与iOS中的组件(顺便学学英语),以便今后在使用的时候完全不虚
霖酱
2018/05/17
2.5K0
【胶囊网络-CapsNet】胶囊网络-CapsNet原理
胶囊是一组神经元,它会学习检测给定区域图像的特定目标,它输出一个向量,向量的长度代表目标存在的概率估计,用向量的方向表示实体的属性。如果对象有轻微的变化(例如移位、旋转、改变大小等),那么胶囊将输出相同长度但方向略有不同的向量,因此,胶囊是等变化的(Equivariance)。 CNN:
百川AI
2021/10/19
2.2K0
如何去掉listview滑动时的阴影
 我们在开发过程中 用到listview控件的时候,会碰到这样的一个小问题,就是 上下滑动的时候  会发现 上面的下面的边上会有阴影,那么怎么去掉这个阴影呢?
再见孙悟空_
2023/02/10
8520
如何去掉listview滑动时的阴影
在DragonOS中,使蜂鸣器发声
很简单,代码如下: void beep(uint64_t times) { io_out8(0x43, 182&0xff); io_out8(0x42, 2280&0xff); io_out8(0x42, (2280>>8)&0xff); uint32_t x = io_in8(0x61)&0xff; x |= 3; io_out8(0x61, x&0xff); times *= 10000; for(uint64_t i=0;i<times
灯珑LoGin
2022/10/31
4240
462. 最少移动次数使数组元素相等
给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1。您可以假设数组的长度最多为10000。
用户7447819
2021/07/23
4840
胶囊 网络
引言 斯蒂文认为机器学习有时候像婴儿学习,特别是在物体识别上。比如婴儿首先学会识别边界和颜色,然后将这些信息用于识别形状和图形等更复杂的实体。比如在人脸识别上,他们学会从眼睛和嘴巴开始识别最终到整个面孔。当他们看一个人的形象时,他们大脑认出了两只眼睛,一只鼻子和一只嘴巴,当认出所有这些存在于脸上的实体,并且觉得“这看起来像一个人”。 斯蒂文首先给他的女儿悠悠看了以下图片,看她是否能自己学会认识图中的人(金·卡戴珊)。 斯蒂文接下来用几张图来考她: 悠悠 图中有两只眼睛一个鼻子一张嘴巴,图中的物体是个
企鹅号小编
2018/02/07
8140
胶囊 网络
移动端禁止遮罩层以下屏幕滑动
当做弹窗效果时,希望弹窗出现的时候网页不可再上下滚动、翻页,可以用body{overflow:hidden},可是做手机站的时候,就不兼容了。
李维亮
2021/07/09
1.5K0
移动端弹框后禁用页面滑动
在web开发中,有时候我们需要实现在页面上点击某个按钮弹出窗口,并禁用页面滑动或滚动的需求。以下是我本人的做法,望大家多多提出意见或建议。 直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>移动端弹框禁止背景滑动</title> <link rel="stylesheet" href="test.css"> <link rel="stylesheet" href="../l
用户1174387
2018/01/17
2.4K0
移动端弹框后禁用页面滑动
模型压缩+编译器优化,使AI算法在移动端性能超越专用硬件
近年来,机器学习(Machine Learning)领域的研究和发展可谓是与日俱新,各式各样与机器学习相关的研究成果与应用层出不穷(如图像识别,自动驾驶,语音识别等),机器学习能够处理的任务也愈发的复杂。但与此同时,新的问题也随之而来,机器学习模型变得更加庞大复杂,因实时性而对算力所产生的需求也远远超乎了我们的想象。这一问题严重阻碍了人工智能(AI)产品及应用融入到人们的日常生活中,因此亟待解决。
CV君
2020/09/07
1.3K0
模型压缩+编译器优化,使AI算法在移动端性能超越专用硬件
100天教程:在Unity中为敌人创造AI动作
译者:刘鸿(lewis2012) 审校:王玥亭(玥亭) 这里是虚拟现实100天的第12天。昨天,我们研究了rigs模型和Unity的mecanim系统(我应该学但在 Survival Shooter 教程中忽略了...) 今天,我们将在创建animator控制器后继续下去。 我们将创建导航组件给我们的Knight Enemy来追逐和攻击玩家。正如你可能记得的那样,Unity为我们提供了一个AI pathfinder(人工智能寻路器) ,可以让我们的游戏对象朝着一个方向移动,同时避开障碍物。 将敌人向玩家移动
企鹅号小编
2018/01/26
2.1K0
我在测试移动弱网时踩过的坑|洞见
安丛 ThoughtWorks 什么是弱网测试 在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。 从测试角度来说,需要额外关注的场景就远不止断网、网络故障等情况了。对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。
ThoughtWorks
2018/04/17
2.2K0
我在测试移动弱网时踩过的坑|洞见
胶囊网络(Capsule Network)在文本分类的探索
最近,Hinton老师等提出了胶囊网络, 用神经元向量代替传统神经网络的单个神经元节点,以dynamic routing的方式去训练这种全新的神经网络。
腾讯知文实验室
2018/06/08
2.9K9

相似问题

jquery选项卡切换链接从而跳到页面顶部?

21

jQuery移动选项卡-选项卡所选事件

19

自定义选项卡在单击时跳到顶部。

21

JQuery选项卡-使所选选项卡可单击

21

jQuery UI选项卡所选索引

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档