gpt4 book ai didi

javascript - 如何使用 ES6 缩短此功能?

转载 作者:行者123 更新时间:2023-11-30 07:49:18 25 4
gpt4 key购买 nike

这个函数是我需要实现的逻辑的一小部分,代码变得超长,我正在寻找创造性的方法以简短的格式编写这个任务。

if (type === '30d') {
self.setState({
startDate: last30d,
endDate: now
},
() => {
this.fetchPeriod('income');
this.fetchPeriod('expense');
this.fetchSettings();
}
);
} else if (type === '15d') {
self.setState({
startDate: last15d,
endDate: now
},
() => {
this.fetchPeriod('income');
this.fetchPeriod('expense');
this.fetchSettings();
}
);
} else if (type === '7d') {
self.setState({
startDate: last7d,
endDate: now
},
() => {
this.fetchPeriod('income');
this.fetchPeriod('expense');
this.fetchSettings();
}
);
}

最佳答案

一个选项是创建一个对象,将每个typestartDate 相关联,然后将其传递给setState:

const startDatesByType = {
'30d': last30d,
'15d': last15d,
'7d': last7d,
};
const startDate = startDatesByType[type];
if (startDate) {
self.setState({ startDate, endDate: now },
() => {
this.fetchPeriod('income');
this.fetchPeriod('expense');
this.fetchSettings();
}
);
}

如果可能,您可以考虑更改 last30d 和相关变量,使它们startDatesByType 对象中,而不是被多个独立变量。

关于javascript - 如何使用 ES6 缩短此功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56212282/

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