首页 > 解决方案 > 数组映射,也许还有字典——这段代码在做什么?

问题描述

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;
}

那么有人能告诉我这段代码创建的结构是什么以及这段代码实际上在做什么吗?

标签: arraysangulartypescript

解决方案


正如@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 问题。


推荐阅读