arrays - 数组映射,也许还有字典——这段代码在做什么?
问题描述
Angular 还是新手,这是我将不得不重构的生产代码,但我无法真正理解它在做什么。
const { productIdSet = [] } = this.selectedStayLevelConfig;
this.selectedProductIds = productIdSet.map(({ productIdCode }) => productIdCode);
我可以告诉你的是 AuthorizationOptionValueDependantConfig 看起来像这样。
interface AuthorizationOptionValueDependantConfig extends Serializable {
allowBackdating?: boolean;
attachmentRequired?: boolean;
attachmentRequiredMessage?: string;
backdatingLimit?: number;
defaultProcedureCode?: string;
defaultProcedureCodeSet?: string;
defaultProcedureId?: string;
defaultProcedureName?: string;
extendLineItemAttachmentRequired?: boolean;
extendLineItemAttachmentRequiredMessage?: string;
extendLineItemNoteDefinitionId?: string;
extendLineItemNoteRequired?: boolean;
noteDefinitionId?: string;
noteRequired?: boolean;
optionGroup?: OptionGroup;
optionValueId?: string;
productIdSet?: AuthorizationOptionValueProductId[];
useDefaultProcedure?: boolean;
}
如您所见,它有一个名为 productIdSet 的成员,它是 AuthorizationOptionValueProductId。这是:
interface AuthorizationOptionValueProductId extends Serializable, Comparable<AuthorizationOptionValueProductId> {
optionValueProductId?: number;
productIdCode?: string;
}
那么有人能告诉我这段代码创建的结构是什么以及这段代码实际上在做什么吗?
解决方案
正如@ritaj 指出的那样:
第一行从 selectedStayLevelConfig 中获取一个带有对象解构的 productIdSet 数组。第二个将数组 productIdSet 映射到 productIdCode 数组再次解构。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators /Destructuring_assignment
我总是忘记查看 javascript 来回答我的 Angular 问题。
推荐阅读
- vue.js - 如何在VueJS中tiptap编辑器的光标位置插入链接?
- ruby - Ruby:如何设置前台终端进程组(posix tcsetpgrp)?
- postgresql - 在 Postgres 12 中更新整个 JSONB 对象
- node.js - Dialogflow 实现库的初始响应需要很长时间(30 秒)
- hibernate - 使用wildfly 19(休眠版)部署ear时出现空指针异常
- terraform - Terraform 0.12 迁移 - 具有默认对象的变量
- excel - VBA 宏在表格末尾插入一行,然后将先前复制的行的值粘贴到新行的特定范围内
- u-boot - 在 C 中执行 bootm 命令
- javascript - VSCode 扩展替换整个文档的文本
- c# - 有什么方法可以以相应的形式显示错误吗?