动态高效地将今天的日期作为字符串分配给属性



正如标题所说,我想以"DD/MM/YYYY"格式将今天的日期作为字符串动态分配给属性。它必须在对象属性声明旁边动态计算和分配。

我想到了这样的事情:

var obj = {
    today: `${(new Date).getDate()}/${(new Date).getMonth()}/${(new Date).getFullYear()}`
};

这很完美,但它显然效率不高,因为它创建了三个新的 Date 实例。我想做这样的事情:

var obj = {
    today: (
        const today = new Date;
        return `${today.getDate()}/${today.getMonth()}/${today.getFullYear()}`
    )
};

谢谢!

你要找的是一个IIFE(立即调用的函数表达式(: 基本上,您希望包装整个生成器函数并在定义对象时立即调用它:

var obj = {
    today: (() => {
        const today = new Date;
        return `${today.getDate()}/${today.getMonth()}/${today.getFullYear()}`
    })()
};
console.log(obj);

附带说明一下:

  • 你应该在today.getMonth()上做+1,因为该方法返回月份的从零开始的索引
  • 您可能希望使用.padStart()来强制使用两位数的月份和日期。

请参阅此处的更新示例:

function pad(val) {
  return val.toString().padStart(2, '0');
}
var obj = {
    today: (() => {
        const today = new Date;
        return `${pad(today.getDate())}/${pad(today.getMonth() + 1)}/${today.getFullYear()}`
    })()
};
console.log(obj);

var today = new Date();
var obj = {
 today:(
   return `${today.getDate()}/{today.getMonth()}/${today.getFullYear()}`
)
}

应该是工作

最新更新