数组映射,也许还有一个字典-此代码在做什么?

时间:2019-07-19 11:17:27

标签: arrays angular typescript

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

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

1 个答案:

答案 0 :(得分:0)

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