从对象中原生提取属性

2023-11-30

I use underscore.js从对象中提取属性的库。是否有更原生的 JS 方法来完成相同的任务:

var fullObject = {'name': 'Jack', 'age': 39, 'device': 'tablet', 'team': 'Red'}
const {name, device, team} = fullObject
console.log(name, device, team) // Jack tablet Red

有没有办法通过解构来创建新对象?

我想分配的值name, device, team到一个新对象。

目前我这样做:

const {name, device, team} = fullObject
const newObject = {name, device, team}
console.log(newObject) // { name: 'jack', device: 'tablet', team: 'red' }

有一个更好的方法吗?


如果您在多个位置提取特定的子对象并且希望它更加 DRY,则可以编写一个接受要选取的键的柯里化函数,然后返回另一个接受要从中提取它们的对象的函数。

使用方法见下图:

const pick = (...keys) => (obj) => keys.reduce((acc, k) => (acc[k] = obj[k], acc), {})
const nameDeviceTeam = pick('name', 'device', 'team')

const fullObject = { name: 'Jack', age: 39, device: 'tablet', team: 'red' }
const newObject = nameDeviceTeam(fullObject)

console.log(newObject)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从对象中原生提取属性 的相关文章

随机推荐

  • Three.js:更改精灵的枢轴点

    我创建了一张 3D 地图 并通过 Sprites 在这张地图上标记点 除了精灵标签的定位之外 这本身工作得很好 因为我正在创建地图 所以相机可以从 0 度倾斜到 90 度 而理想情况下 标签始终在屏幕上标记的项目正上方保持一定距离 但不幸的
  • 使用
    标记外部的按钮提交表单

    假设我有
  • 尝试保存到 NSUserdefaults 时出错

    我有一个按以下方式工作的表 如果选择一行 则将与所选行对应的金额添加到var total 添加一个复选标记 如果取消选择 金额将被减去 复选标记将设置为无 在尝试将数据保存到 NSUserDefaults 或从 NSUserDefaults
  • 无法进行跨域 Ajax 调用

    文档 ready 函数 ajax 网址 http gdata youtube com feeds api users zdf playlists v 2 类型 获取 成功 函数 消息 控制台 log 消息 我收到此错误 XMLHttpReq
  • 将选择选项和 optgroup 存储在 JavaScript 数组中

    我正在制作一个循环 html select 的 jQuery 插件
  • GORM 无法认识到插件中的域类是 GORM 类

    我正在尝试使用 Grails 项目作为插件 基本上将我的域类放在插件中 然后在多个 Grails 项目中使用它们 我已经这样做了 grails 创建应用程序 web grails 创建应用程序插件 在两个项目的根目录中创建一个setting
  • R 自定义包安装文件错误

    我一直在为一个模拟项目开发 R 包 在我家里的计算机上我已经使用 RStudio 成功构建并安装了它 然而 在大学的另一台机器上 我遇到了麻烦 如果我尝试在 RStudio 中构建一个二进制文件 它也会安装它 我会收到一个错误 如果我只是编
  • AVD 管理器无法找到 tools\android.bat,即使它在那里

    我在互联网上对此进行了很多研究 但我发现没有任何东西可以帮助我 我让 SDK 管理器运行 但是当我尝试运行 Adroid AVD 管理器时 它不运行 为什么 它一字一句地说 无法执行tools android bat 该系统找不到指定的文件
  • 如何更改javafx中滑块的填充颜色

    我正在制作一个视频播放器 想要使用时间线滑块 并且我想将滑块从第一张图片更改为第二张图片 我可以只使用CSS代码来做到这一点吗 如果是的话 代码是什么 下面很长的帖子 如果您想要一种简单的方法来实现滑块上的 颜色 我应该提到您可以使用JFo
  • 如何绕过权限被拒绝错误?

    以下示例将点形状文件写入光盘 但是 当脚本尝试将 shapefile 写入 C 时 我收到错误 我可以写入外部硬盘 G 以下是我在 R 中收到的错误 文件错误 out name wb 无法打开连接 另外 警告消息 在文件 out name
  • 有条件地选择多个(相邻)行

    我想返回符合特定条件的行 我可以对单行执行此操作 但我需要对多行组合执行此操作 例如 浅绿色 符合 XYZ 为正且 总计 gt 10 的条件 而 红色 则不然 当我组合相邻的一行或多行时 它确实 gt 深绿色 我可以实现遍历所有行而不返回重
  • 为什么当 Tomcat 加载和读取 beans.xml 时 Spring AOP XML 模式没有正确加载

    我正在尝试使用Spring 基于模式的 AOP 支持在 Eclipse 中 尝试在 Tomcat 中加载配置时出现错误 Eclipse 中没有错误 并且 aop 命名空间的自动完成功能正常工作 但是当我尝试将项目加载到 Eclipse 中时
  • 如何通过互联网连接TFS

    我正在团队环境中开发一个大型应用程序 我们使用 Team Foundation Server 来通过 VS2010 控制源代码 我们使用 LAN 连接 TFS 这在小型办公室中效果很好 但现在我们需要通过 Internet 连接 TFS 实
  • 如何重写 ParsePushBroadcastReceiver 的 onPushReceive() ?

    我正在使用 Parse com 的推送通知服务 根据doc 覆盖 onPushReceive 以触发 静默 后台操作 推动 我找到了onPushOpen 的源代码here 但现在我必须重写 onPushReceive 来自定义声音和振动的行
  • Spark 中 addJar() 方法有什么用?

    在Spark作业中 我不知道如何导入和使用方法共享的jarSparkContext addJar 似乎这种方法能够将 jar 移动到集群中其他节点可以访问的某个位置 但我不知道如何导入它们 这是一个例子 package utils publ
  • 如何使用 Beautiful Soup 查找具有特定文本的标签?

    怎么找text I am looking for在以下 HTML 中 标有换行符 n tr td class pos n Some text n br n strong some value strong n td tr tr td cla
  • Scala:在编译时验证类参数不是instanceOf特征

    在编译时 我想验证类参数不是特定特征 T 的实例 我知道如何在运行时使用require or a case match但想知道如何在编译时完成此操作以防止用户提供某种类型的对象混合 我研究过 scala 宏 反射 但无法完全理解它 trai
  • 用户切换浏览器选项卡时的事件

    我正在寻找一个每当用户从页面切换到另一个选项卡时就会触发的事件 以及当用户再次切换回该选项卡时触发的另一个事件 window onblur and window onfocus 似乎无法正常工作跨所有浏览器 我可以查看代理来合成此事件吗 您
  • 一些字符在 POST 期间编码,而另一些则没有

    TL DR 代码点火器 Security类直接操作您的全局变量 例如 POST它发现file and file 是一种威胁 因此它对其进行 HTML 编码 config php from my apps folder is the culp
  • 从对象中原生提取属性

    I use underscore js从对象中提取属性的库 是否有更原生的 JS 方法来完成相同的任务 var fullObject name Jack age 39 device tablet team Red const name de