在 Javascript 中编写部分复制对象的优雅方法?

2024-01-08

我有一个代表表单字段的 javascript 对象。其中大约 70% 的字段必须复制到某些对象中才能发送到服务器,其他字段用于 UI 使用。目前,我通过手动为每个字段创建分配来克隆对象,这会导致结构不太好,如下所示。请注意,我将使要复制的部分的字段名称保持相同。

var contData = {
                ContainerType: data.ContainerType,
                ProjectIds: data.ProjectIds,
                PrivateToProjects: data.PrivateToProjects,
                DimensionType:data.DimensionType,
                MetricsX: data.MetricsX,
                MetricsY: data.MetricsY,
                Parent:data.Parent,
                ContainerName:data.Prefix
            };

编码对象克隆部分的最佳方法是什么,只需指定要克隆/不克隆的字段列表,例如一些有用的辅助函数?

我还使用 Angular 和 jquery。


ES6 之后,你可以

let { ContainerType, ProjectIds } = data  // the fields you want
let partiallyCopy = { ContainerType, ProjectIds }
console.log(partiallyCopy)  // { ContainerType: "...", ProjectIds: "..." }

如果您需要大多数字段,您可以

let { ContainerType, ProjectIds, ...rest } = data  // the fields you don't want
let partiallyCopy = rest
console.log(partiallyCopy)  // the object excludes ContainerType and ProjectIds
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Javascript 中编写部分复制对象的优雅方法? 的相关文章

  • Dimple.js - 将数据标签添加到条形图的每个条形

    我使用的是dimple js 它基于d3 js 是否可以向本示例中提到的条形图的每个条形添加数据标签http dimplejs org examples viewer html id bars vertical http dimplejs
  • 使用日期类型将输入字段中的日期居中

    我想将日期居中input not input inside div 如果我进行居中 它将把日期居中于input因为有一个右侧面板用于根据日历选择日期 该面板根据输入宽度调整大小 用于演示的小代码片段 center text align ce
  • Javascript:如何检查异步操作是否仍在挂起/正在进行中?

    我想知道是否可以以某种方式检查 Javascript 中的异步操作是否仍处于待处理状态 因为我正在执行调用特定 URL 的数据库请求 虽然 db 调用仍在进行中 但我想停止任何其他传入的 db 调用 这意味着 停止对该 URL 的任何进一步
  • 为什么 `obj.foo = function() { };` 没有将名称 `foo` 分配给函数?

    从 ES2015 ES6 开始 函数有了专有名称 包括官方名称 name属性 而函数创建时的赋值除了明显的函数声明和命名函数表达式之外还有多种方式 比如给变量赋值 函数的名字设置为变量的名字 给对象属性赋值 函数的名称设置为属性的名称 甚至
  • 使用 javascript 调用 ViewComponent

    我有一个带有几个视图组件的网页 当我单击这些组件时 我会为其打开一个简单的编辑器 请参见下图 如果我编辑文本并按 Enter 键 我想重新渲染视图组件而不是孔页面 是否可以使用 javascript 调用视图组件来获得此行为 通过更新 您现
  • 最小的 ExtJS 包是什么?

    有谁知道 Ext JS 2 2 所需的最少文件吗 我知道 ExtJS 网站有一个功能 build http extjs com products extjs build ExtJS ext js 的小版本 作为 ext all js 的替代
  • 如何制作像Stackoverflow一样的可折叠评论框

    我正在构建一个网站 并且有一个状态更新列表 我希望允许用户为列表中的每个项目撰写评论 但是我正在尝试实现一个类似于堆栈溢出工作方式的用户界面 特别是可折叠的评论表单 列表 用户在其中单击对列表中的特定状态更新添加评论 并且在列表中的该项目下
  • 一个 Next.js 路由中的两个不同子域

    我想使用构建一个新平台Next js https nextjs org React js https reactjs org and 反应路由器 https reacttraining com react router web guides
  • JSDoc:如何在生成的文档中包含自定义 css 文件模板?

    JS文档docs https jsdoc app about configuring default template html say 将图像目录复制到输出目录 复制全部 将 myproject static 中的静态文件复制到输出目录
  • 为什么我的 onclick 事件自动触发

    加载页面时最初显示 Hello World 我希望它仅在单击按钮后显示 我知道我可以通过向按钮添加内联事件侦听器来做到这一点 我可以只用脚本编写所有这些代码吗
  • 如何获取数组中最后 5 个元素(不包括第一个元素)?

    在 JavaScript 数组中 如何获取最后 5 个元素 排除第一个元素 1 55 77 88 would return 55 77 88 添加其他示例 1 55 77 88 99 22 33 44 would return 88 99
  • 带有嵌入式 Ruby 的 Javascript:如何安全地将 ruby​​ 值分配给 javascript 变量

    我在页面的 javascript 块中有这一行 res foo 处理这种情况的最佳方法是什么 ruby var里面有单引号吗 否则会破坏 JavaScript 代码 我想我会用红宝石JSON http json org ruby var 上
  • t /= d 是什么意思? Python 和错误

    t current time b begInnIng value c change In value d duration def easeOutQuad swing function x t b c d alert jQuery easi
  • 有没有办法在 TypeScript 2+ 中全局添加类型定义?

    我有一堆简单的 ts files 不是项目 即独立的 ts 脚本 他们使用一些 Node js 功能 TypeScript 和节点类型定义通过安装 npm install g typescript npm install g types n
  • Rails 4 - 带有 dependent-fields-rails 的条件 JS

    我正在尝试弄清楚如何在我的 Rails 4 应用程序中使用 dependent fields rails gem 我迷路了 我已将 underscore js 包含在我的供应商 javascripts 文件夹中 并更新了我的 applica
  • 如何为 ng-repeat orderBy 创建回调?

    寻找一种方法让 AngularJS 的 ng repeat orderBy 过滤器在完成渲染后执行回调 Markup div table thead tr th Name th th Age th tr thead tbody tr tr
  • IE6 丢失查询字符串

    我有一个使用 javascript 从查询字符串中获取值的页面window location 从网络服务器运行时效果很好 但如果我通过将其放在地址栏中使用 IE6 在本地运行它 c mysite index htm 网站创建的任何查询字符串
  • 获取 2 个日期之间的月份名称

    我有两个约会from and to 我想获取这两个日期之间的所有月份名称 以下是我的代码 var monthNames January February March April May June July August September
  • nvd3.js - 无法更改折线图中线条的颜色

    我正在尝试更改 nvd3 折线图不同线条的颜色here http nvd3 org livecode index html codemirrorNav但我无法理解该怎么做 我想将示例中的 2 条线的颜色更改为绿色和青色 我试过 nv add
  • 如何在 ChartJS 中创建自定义图例

    我需要使用 ChartJS 库为我的圆环图创建自定义图例 我已经使用 ChartJS 提供的默认图例创建了甜甜圈 但我需要一些修改 我希望其价值高于汽车名称 另外 我不喜欢粘性图例 我想将其与甜甜圈分开 这样我就可以更改字体 框的样式 例如

随机推荐

  • Chart.js 为刻度添加填充

    我需要在 x 轴和 y 轴上添加填充 这个问题 如何在 Chart js 中的 Graph 和 X Y Scale 之间添加填充 https stackoverflow com questions 32095839 how to add p
  • Adsense 的自定义点击跟踪

    我需要在点击广告时识别我的用户 例如 当用户A在线时 我需要知道他是点击广告单元的人 当使用我自己的广告时 这是小菜一碟 使用 URL 重定向 但是 现在我们计划切换到 Adsense 它通过 javascript 呈现广告 因此我无法在那
  • Akka Http - 如何将 ResponseEntity 解组到 CustomClass?

    我正在使用 Akka Http 向第 3 方 API 发出请求 响应是 application json 我想使用 Akka Http 将它们转换为自定义案例类 我想做这样的事情 val request RequestBuilding Ge
  • 如何使用 Chrome 扩展更改当前选项卡的标题

    我想使用扩展名更改选项卡的标题 实际上 我在使用时遇到了困难 chrome tabs get 函数 选项卡 如何使用上面的功能呢 还有其他方法可以直接更改标题吗 chrome tabs query active true windowId
  • 如何在 Linux 中将“find”的结果通过管道传输到 mv

    如何通过管道将 查找 在 Linux 中 的结果移动到不同的目录 这是我到目前为止所拥有的 find name article mv backup 但它还不对 我收到错误缺少文件参数 因为我没有指定文件 因为我试图从管道获取它 find n
  • 为什么从数据源中删除项目时,DGV 会导致未捕获的异常?

    我有一个带有 DataGridView 的 WinForms 应用程序 该应用程序的 DataSource 属性设置为 BindingSource 反过来又具有itsDataSource 设置为 BindingList 一切工作正常 直到我
  • 如何使用 Keystone.js 添加 Array 类型的虚拟属性?

    这是我的模型的代码 Info 及其造成问题的 tokens 属性 var keystone require keystone Types keystone Field Types var Info new keystone List Inf
  • Python 如何以及何时确定变量的数据类型? [复制]

    这个问题在这里已经有答案了 我试图弄清楚 Python 3 使用 CPython 作为解释器 到底是如何执行其程序的 我发现步骤是 通过 CPython 编译器将 Python 源代码 py 文件 编译为 Python 字节码 pyc 文件
  • 返回父元素 - Cypress 中的 CSS 选择器

    有人可以在以下情况下提供帮助吗 我必须办理登机手续if语句元素是否存在 由于没有可能使用Xpath in find命令 使用 Xpath 运行时引发语法错误 我的代码看起来 cy xpath list eq index then el1 g
  • Bluebird 的 Promise.settle 无法解析正确的值

    我有以下代码 return Promise settle matches imgur uploadUrl map function inspection if inspection isFulfilled return inspection
  • 如何使用 JavaScript 访问 SVG 元素?

    我正在摆弄 SVG 希望能够在 Illustrator 中创建 SVG 文件并使用 JavaScript 访问元素 这是 Illustrator 推出的 SVG 文件 它似乎还向我删除的文件的开头添加了一堆垃圾
  • 自动完成在自动完成窗口中显示相关数据

    I have 3 input fields 1 for data type and other 2 are its relevant when i press button in data type field i want to disp
  • 嵌套静态类中不允许扩展方法?

    为什么是这样 我会找到它really很高兴能够将一些扩展方法锁定为仅在我的一个类中使用 我真的不想让某些扩展方法随处可用 而且它们看起来比常规静态方法好得多 P 为了澄清 我想要这些扩展方法的原因是因为我正在扩展一个 Form 它上面有一个
  • jquery mobilescrollview-如何显示隐藏内容并阻止scrollview弹回到初始位置

    我正在使用滚动视图插件开发 JQM 项目 我已完成所有设置 并且滚动视图正在工作 但是 要滚动的 隐藏 内容不会完全加载 并且滚动视图始终会弹回到其初始位置 这是示例的链接 example http www franckreich de 3
  • 在 Html

    中设置行高,使 html 在

    具有不同字体大小时看起来像 Of​​fice Word

    如何在一个html标签中设置行高 p 当这个 p p 有两种不同的字体大小 如果我设置 p p style line height 50 p 那么整个 p 只有一种行高 但我希望它的行为就像 Microsoft Office Word 和
  • WPF 按钮图像仅显示在最后一个控件中

    我对 WPF 相当陌生 可能缺少一些简单的东西 如果我有 3 个控件 则只有最后一个控件会显示我指定的 OriginalImage 非常感激任何的帮助 谢谢 瑞安 主窗口
  • 来自 HttpClient 的重复请求

    我在 android 上使用 HttpClient 4 0 1 我发出一个 POST 请求 其标头集是当前的毫秒数 我看到该请求在彼此间隔几毫秒 5 10 的时间内两次命中服务器 但是我为两个请求设置的标头是相同的 这种情况偶尔会发生 我认
  • SQL 结果作为 PHP 数组

    如何获取包含多行到数组中的 SQL 结果 SQL 表示例 ID Cat LineID Qty DealID Cost 1 Phone 1 2 8941 25 00 2 Phone 2 43 8941 85 00 3 Net 1 2 8941
  • 校对强度和本地语言关系

    我已从 Collat or 的 Javadoc 中阅读了以下内容 对语言功能的优势的准确分配取决于区域设置 例如 在捷克语中 e 和 f 被认为是主要差异 而 e 和 是次要差异 e 和 E 是三级差异 e 和 e 是相同的 这是否意味着我
  • 在 Javascript 中编写部分复制对象的优雅方法?

    我有一个代表表单字段的 javascript 对象 其中大约 70 的字段必须复制到某些对象中才能发送到服务器 其他字段用于 UI 使用 目前 我通过手动为每个字段创建分配来克隆对象 这会导致结构不太好 如下所示 请注意 我将使要复制的部分