Javascript 替换/重新映射对象数组中的值
我正在从mongoDB中提取一个数组对象。nodeJs代码如下所示:Javascript 替换/重新映射对象数组中的值,javascript,node.js,Javascript,Node.js,我正在从mongoDB中提取一个数组对象。nodeJs代码如下所示: router.get('/', async (req, res) => { let searchOptions = {} if (req.query.name != null && req.query.name !== ''){ searchOptions.name = new RegExp(req.query.name, 'i') } try
router.get('/', async (req, res) => {
let searchOptions = {}
if (req.query.name != null && req.query.name !== ''){
searchOptions.name = new RegExp(req.query.name, 'i')
}
try {
const persons= await Person.find(searchOptions)
res.render ('persons/index', {
persons: persons,
searchOptions: req.query
})
} catch {
res.redirect('/')
}
})
数据库数据具有以下结构:
[
{
_id: 607d83d6877c33156c54a555,
name: 'person1',
dob: 2020-11-29T00:00:00.000Z,
__v: 0
},
{
_id: 607d9f15552e7931b8381170,
name: 'person2',
dob: 2021-04-08T00:00:00.000Z,
__v: 0
}
]
当我在浏览器中显示
时,值的格式如下:
Sun Nov 29 2020 01:00:00 GMT+0100 (Mitteleuropäische Normalzeit)
我正在寻找一种以更可读的方式显示person.dob
的方法,这就是为什么我想用(YYYY-MM-DD)之类的内容替换(或重新映射?)每个dob值,然后传递给每个人:
res.render ('persons/index', {
persons: persons,
searchOptions: req.query
})
最好是替换现有的日期值还是创建新的数组对象?我如何以最简单的方式实现这一点?您可以使用array.map()函数非常轻松地实现这一点
res.render ('persons/index', {
persons: persons.map(dob => format(dob)),
searchOptions: req.query
})
以下是文档:谢谢您的回复。这似乎不起作用(错误:“格式错误的箭头函数参数列表”)。对象键person.dob不是.map()的有效参数吗?在仔细检查数据之后,我认为它应该是persons.map(dob=>format(dob))。只有在你做了类似于“为人处事”的事情之后,它才会变成person.dob。