【发布时间】:2019-08-28 14:31:02
【问题描述】:
我有一个函数,它接受一个对象参数并且应该从这个参数生成一个字符串值。我需要在另一个函数中使用这个参数,但是在执行第一个函数时,参数会改变。
这是接受对象参数的函数
export const generateCron(cronRules: any): string {
const cronKeys: Array<string> = ['minute', 'hour', 'day', 'month', 'year'];
cronKeys.forEach(key => {
if (!cronRules[key]) {
cronRules[key] = '*';
}
});
const { minute, hour, day, month, year } = cronRules;
const cron: string = `${minute} ${hour} ${day} ${month} ${year}`;
return cron;
}
这是调用函数的方式
const { cron } = data;
console.log(cron)
const cronRules: string = generateCron(cron);
console.log(cron)
假设我将 cron 对象设为 { minute: 1, hour: 2 }
函数按预期返回1 2 * * *。但安慰 cron
对象(第二个控制台)对象已更改为
{ minute: 1, hour: 2, day: '*', month: '*', year: '*' }
有人可以帮我了解发生了什么
【问题讨论】:
-
cron是cronRules在generateCron函数中,你这样做cronRules[key] = '*'。
标签: javascript node.js typescript express