gpt4 book ai didi

javascript - 有没有一种优雅的方法可以将参数对象传递给函数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:35 27 4
gpt4 key购买 nike

我有以下方法,它获取一组数据并从中创建模型的新实例。 reportTemplateData 作为一个对象出现,我对其进行解构,以便将其作为属性列表传递给类构造函数。

虽然这很有效,但我觉得它可以更有效地完成。是否有更优雅的方式在一行左右执行此操作?

addReportTemplate(reportTemplateData) {
const {
id,
pageId,
profileTemplateId,
userId,
name,
description,
createdAt,
updatedAt,
deletedAt,
createdBy,
updatedBy,
deletedBy,
reportTemplateColumns,
} = reportTemplateData;
const newReportTemplate = new ReportTemplate(
id,
pageId,
profileTemplateId,
userId,
name,
description,
createdAt,
updatedAt,
deletedAt,
createdBy,
updatedBy,
deletedBy,
reportTemplateColumns,
);
this.reportTemplates.push(reportTemplates);
}

编辑

值得注意的是,如果您选择 const newReportTemplate = new ReportTemplate({...reportTemplateData}) 解决方案,则必须将数据属性与类构造函数参数精确匹配。这对我来说是一个问题,因为数据以 snake_case 形式进入,而我的 Javascript 模型正在寻找驼峰式。

最佳答案

假设只有您要传递的属性在该对象中。

addReportTemplate(reportTemplateData) {
const newReportTemplate = new ReportTemplate({ ...reportTemplateData });
this.reportTemplates.push(reportTemplates);
}

如果您想排除一些属性,请解构它们。

addReportTemplate(reportTemplateData) {
const {
excluded1,
excluded2,
...properties,
} = reportTemplateData;
const newReportTemplate = new ReportTemplate({ ...properties });
this.reportTemplates.push(reportTemplates);
}

这两种方法都需要更改 ReportTemplate 类,其中构造函数将对象作为参数。在 this pen 中查看此方法如何工作的两个示例.

关于javascript - 有没有一种优雅的方法可以将参数对象传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51855668/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com