从 ES 6 中的对象获取一些属性的单行代码

2024-04-11

如何在 ES6 中以最紧凑的方式编写一个只需要几个属性的函数?

我想出了使用解构+简化对象文字的解决方案,但我不喜欢代码中重复字段列表。

有没有更苗条的解决方案?

(v) => {
    let { id, title } = v;
    return { id, title };
}

这是更精简的内容,尽管它并不能避免重复字段列表。它使用“参数解构”来避免需要v范围。

({id, title}) => ({id, title})

(请参阅此中的可运行示例其他答案 https://stackoverflow.com/a/51340842/1269037).

@EthanBrown 的解决方案更通用。这是一个更惯用的版本,它使用Object.assign和计算属性([p] part):

function pick(o, ...props) {
    return Object.assign({}, ...props.map(prop => ({[prop]: o[prop]})));
}

如果我们想保留属性的属性,例如configurable以及 getter 和 setter,同时还省略不可枚举的属性,然后:

function pick(o, ...props) {
    var has = p => o.propertyIsEnumerable(p),
        get = p => Object.getOwnPropertyDescriptor(o, p);

    return Object.defineProperties({},
        Object.assign({}, ...props
            .filter(prop => has(prop))
            .map(prop => ({prop: get(props)})))
    );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 ES 6 中的对象获取一些属性的单行代码 的相关文章

  • 线程“main”中出现异常 java.lang.UnsatisfiedLinkError: ... \jzmq.dll: 找不到依赖库

    我有一个使用 ZMQ 的 java 应用程序 我已经能够在我的 Win7 PC 上运行它 我将 jzmq dll 放在 jar 可执行文件所在的同一文件夹中 然后通过命令 java jar myapp jar 运行它 我的下一步是将其移至服
  • 通过 R 连接到 Azure SQL

    下面的代码允许我通过 R 连接到 Azure SQL 服务器 但是 我只能访问 主 数据库 而不能访问我在下面创建的两个数据库 表格显示为空白 有什么想法吗 谢谢 library RODBC library dplyr library DB
  • 使用字符串数组在 Hive 表上加载 CSV 文件

    我正在尝试将 CSV 文件插入 Hive 其中一个字段是 string 数组 这是 CSV 文件 48 Snacks that Power Up Weight Loss Aidan B Prince Health Fitness Trave
  • 基于生产的 Azure SQL 数据库沙箱

    我有一个大型 Azure Sql 数据库 我需要向团队提供一个沙箱 它是数据库的副本 但允许他们创建 sql 对象 沙箱中的数据需要与生产保持同步 我使用了弹性查询 但是性能并不理想 我查看了数据同步 但公司要求 AD 身份验证 定期恢复生
  • 从脚本启用/禁用 GameObject 组件 [Unity3D]

    我需要获取一个脚本中设置的布尔值 放入名为 bouclier 的变量 以启用或禁用游戏对象 该变量位于游戏对象 Player 中 此处右下角 我需要启用或禁用这个游戏对象 Bouclier01 为此 我将脚本附加到游戏对象 Bouclier
  • 如何在c#中创建多线程

    我需要监听机器中的所有串行端口 假设我的机器有 4 个串行端口 我必须创建 4 个线程并开始分别使用附加线程监听每个端口 我使用此代码来获取我的机器中的端口数量 private SerialPort comPort new SerialPo
  • 通过 Ajax 加载内容

    好的 我对 ajax 和从外部加载内容还很陌生 如果您能深入了解我的问题 我将不胜感激 我目前有一个空的隐藏 div 单击链接后应在其中加载 ajax 内容 div div 我目前有一个链接列表 它们都具有相同的类 我希望在单击时 空白 d
  • Windows 更新后 Active 设置为 False 时 TIdHttpServer 冻结

    我们有一个 Indy 版本 10 6 1 5235 TIdHttpServer 服务 多年来一直与 Delphi 2007 配合良好 在最新的 Windows 更新 KB4338815 和 KB4338830 之后 我们注意到当 TIdHt
  • uWSGI 皇帝权限被拒绝,除非 root

    我尝试使用二进制文件本身的标志 uid www data gid www data 并将其设置在我的配置中 uid www data gid www data 但套接字总是由我正在使用的帐户生成 因此我从 nginx 收到权限被拒绝的错误
  • PHP Session Id 在页面之间发生变化

    我有一个问题 我在 2 个页面之间丢失了 PHP 会话 session start 包含在一个名为 session inc php 的文件中 该文件包含在每个需要设置会话的页面中 这适用于网站上除一个特定页面 member profile
  • 使用 Hibernate 防止无限循环数据检索

    我想知道 想象一个场景 例如 POJO public class User private String userName private String name private String surname private List
  • 如何在 LLVM 中实现字符串数据类型?

    我一直在看LLVM http llvm org 最近 我发现它是一个非常有趣的架构 然而 浏览教程和参考材料 我看不到任何关于如何实现的示例string http en wikipedia org wiki String computer
  • 如何在 C 中创建最低有效位设置为 1 的掩码

    这个功能如何运作 最低有效 n 位设置为 1 的掩码 Example n 6 gt 0x2F n 17 gt 0x1FFFF 我根本不明白这些 尤其是 n 6 gt 0x2F 另外 什么是面膜 通常的方法是采取1 并将其左移n位 这会给你类
  • cUrl 在本地主机上工作正常,但在服务器上不起作用,仅显示空白页面

    当我在服务器上运行以下代码时 它只显示空白页面并突然停止进一步执行 我还检查了已安装的服务器上的 cUrl 这是我的代码 ftp server ftps server Voorraadtonen link csv ch curl init
  • 表单帖子上的 asp.net mvc 编码

    我在我的 asp net mvc 表单 带有文本区域的 nicedit 中使用富文本编辑器 当我在帖子上提交表单时 因为它不是 html 编码的 我收到以下消息 从客户端检测到潜在危险的 Request Form 值 如何对 post 上的
  • 将自定义属性添加到 Tk 小部件

    我的主要目标是向小部件添加隐藏标签或字符串之类的内容 以在其上保存简短信息 我想到创建一个新的自定义 Button 类 在本例中我需要按钮 它继承所有旧选项 这是代码 form tkinter import class NButton Bu
  • 在windows + opengl中选择图形设备

    我知道如何使用 openGL 打开窗口 使用 Win32 或其他工具包 但是当系统有2块显卡时 如何选择要渲染的图形设备 我的编程语言是 C 我专注于 Windows 但任何示例都将受到欢迎 编辑 也许更好地解释我的问题是个好主意 以便添加
  • 将一个 IEnumerable 拆分为多个 IEnumerable

    我是 linq 新手 我需要根据指示器将 Couple string text bool Indicator 类型的 IEnumerable 拆分为多个 IEnumerable 我尝试使用skipWhile 和 TakeWhile 但没有找
  • 为子元素提供属性时,如何为 React.cloneElement 分配正确的类型?

    我正在使用 React 和 Typescript 我有一个充当包装器的反应组件 我希望将其属性复制到其子组件 我正在遵循 React 的使用克隆元素的指南 https facebook github io react blog 2015 0
  • 使用 Coldfusion 的 CFFILE 标签监控 FFMpeg 的进度日志

    我想学习如何使用 ColdFusion 中的 CFFILE 标签来读取文本文件的内容 就我而言 该文本文件是 FFMpeg 在对媒体文件进行转码时生成的进度日志 我想编写一个 ColdFusion 脚本 该脚本将定期轮询进度日志 直到日志表

随机推荐

  • 缓存 auth_request 中的令牌

    我想缓存请求标头字段授权中的令牌 Authorization Bearer abcdefghijklmnopqrstuvwxyz 我的目标是 我不必验证验证服务器上的每个请求 如果授权令牌已缓存 且有效 则请求应调用 API 而无需验证 l
  • 如何有效地逐行迭代“Vec>”?

    我正在写一个图书馆 它采用了Vec
  • 为什么 PostgreSQL 在 Windows 上这么慢?

    我们有一个使用 MySql 运行的应用程序 在我们发现 MySql 不支持 PostGIS 所具有的某些 GIS 功能后 我们发现它不适合我们的应用程序 注意 mysql 仅支持最小边界矩形 GIS 搜索 所以我们将数据库更改为 Postg
  • 导入模块时内存使用差异

    我想知道以这些方式导入模块时内存使用情况有什么区别 import Mod1 from Mod1 import from Mod1 import a b c 主要介于前两者之间 第一个使用最少的内存 因为它只在模块范围中创建单个名称 第二个使
  • libgcc.a 和 libgcc_s.a 之间的区别?

    我们已经安装了 GCC 和libgcc在 AIX 6 1 上使用 RPM 文件 我想知道的是为什么 libgcc s a 没有在以下文件夹下创建 opt freeware lib gcc powerpc ibm aix6 1 0 0 4 2
  • ASP.NET 母版页 DefaultButton 覆盖

    我有一个带有表单元素的母版页 并将 defaultbutton 属性设置为服务器端 ImageButton 在我的其中一个页面上 我想通过在 Page Load 事件中设置 Forms DefaultButton 来 覆盖 母版页默认按钮属
  • UILabel 文本没有改变,但是 xx.title 正在工作

    我有两个视图控制器 在第一个视图控制器中 我有名称列表 当我单击它时 我希望在第二个视图控制器中显示相同的名称 我有下面的代码 void tableView UITableView tableView didSelectRowAtIndex
  • didChangeObject:未调用 NSFetchedResultsController

    我几乎尝试了所有方法 但无法找出问题所在 我有一个 NSFetchedResultsController 并从核心数据中获取一些帖子 然后我有一个方法 可以将新帖子插入到同一上下文中并保存上下文 通常 现在应该调用 didChangeObj
  • 将图像置于 div 中居中

    我已经在 a 中设置了图像的边框div成为无 我现在想将该图像放在其包含的 div 中居中 我尝试过使用margin 0 auto 但这没有用 我确信我忽略了一些愚蠢的事情 但我想寻求 stackoverflow 社区的帮助 这样我就不需要
  • Azure WebJobs SDK 基础知识

    我想了解 Azure WebJobs SDK 上的 JobHostConfiguration 我在哪里可以找到配置 它在 app config 上吗 JobHostConfiguration 如何识别这是不是 IsDevelopment 我
  • 自定义属性与非自定义属性?

    实现的东西ICustomAttributeProvider接口将允许您获取已通过以下方式应用到它的自定义属性GetCustomAttributes方法 据我了解 自定义属性基本上是一个特殊的类 以 Attribute 结尾并扩展Attrib
  • iCloud Drive 通过 NSMetadataQuery 列出目录和文件

    I have built an iCloud enabled app named rmc My app now can upload files to iCloud Drive and get metadata by NSMetadataQ
  • Asp.net MVC Web Api Http 放置和删除请求失败

    我正在使用 Asp net MVC 4Web Api项目 我的应用程序使用 mvc 来实现网站 它向 Web API 发出 http 请求以实现服务器功能 对控制器的常规页面请求工作正常 并且能够显示网页 该应用程序能够使get and p
  • Hibernate Annotations - 字段访问和属性访问哪个更好?

    这个问题有点相关Hibernate注解放置问题 https stackoverflow com questions 305880 hibernate annotation placement question 但我想知道哪个是better
  • 窗口后 Apache-beam 挂在 groupbykey 上 - 不触发

    TLDR 如何使用 python SDK 更正触发计数窗口 Problem 我正在尝试创建一个用于转换和索引维基百科转储的管道 目标是 从压缩文件中读取 只需一个进程并以流式传输方式 因为该文件不适合 RAM 并行处理每个元素 ParDo
  • 隐式声明的特殊成员函数

    基本上隐式声明了四个特殊函数 默认构造函数 默认析构函数 默认赋值运算符 默认成员复制运算符 问题 如果其中任何一个是由用户定义的 例如 析构函数 其余三个函数将不会被声明 这是正确的吗 或者 它只适用于默认构造函数 而复制构造函数 如果你
  • 寻找一个已经实现二叉树的java库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有可以使用的具有二叉树的java库 我并不期待测试和实施我自己的 Java 标准 API 只包含普遍
  • (使用 -source 7 或更高版本在交换机中启用字符串)错误;Netbeans 7.1.2

    我使用的是 JDK 7 和 Netbeans IDE 7 1 2 正在经历在 switch 中使用字符串 http docs oracle com javase tutorial java nutsandbolts switch html
  • 安装 Firebase for React 时出现 Grpc 错误

    我已经尝试修复这个错误两天了 我所做的就是得到错误 创建反应应用程序名称 cd 应用程序名称 npm install firebase save 这是未能正确安装的部分 这些是我尝试过的主要修复 安装最新版本的Python 3并将其添加到W
  • 从 ES 6 中的对象获取一些属性的单行代码

    如何在 ES6 中以最紧凑的方式编写一个只需要几个属性的函数 我想出了使用解构 简化对象文字的解决方案 但我不喜欢代码中重复字段列表 有没有更苗条的解决方案 v gt let id title v return id title 这是更精简