无法覆盖JavaScript对象的属性

我有一个格式化messagedate属性的方法。 用户拥有一组messages

 user.messages[i].date = formatDate(user.messages[i].date); // logs the correctly formatted date console.log(formatDate(user.messages[i].date)); // logs the unformatted date console.log(user.messages[i].date); 

但是,当我这样做下面的代码片段它的作品。

  user.messages[i] = { name: user.messages[i].name, body: user.messages[i].body, _id: user.messages[i]._id, date: formatDate(user.messages[i].date) }; 

在@plalx的评论的帮助下,我在这个线程中find了一个解决scheme:

对Mongoose模型的虚拟属性进行挖掘

这是一个猜测,但你可以添加formatteddate:“”到你的用户模型(或类似),然后尝试:

 user.messages[i].formatteddate = formatDate(user.messages[i].date); 

所以你不重新configuration它。