Javascript 替换/重新映射对象数组中的值

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

我正在从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 {
        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。