将数组保存到变量中,例如results。然后使用.map()遍历每个results对象,检查是否定义了msg属性;如果是,请将它们保存到新的 errors 数组中。如果没有定义msg 属性,则返回undefined。
然后我们使用.filter() 立即删除所有undefined 的元素,使errors 数组仅包含与results 数组中的msg 字段相等的字符串元素。
最后,我们正在检查errors 数组中是否有任何元素,如果有,则返回第一个元素(错误消息);表达它会是这样的:
if(errors.length > 0) return res.status(400).json(errors[0]);.
这将始终返回函数遇到的第一个错误。
const results = [{"firstname":{"value":"","msg":"Firstname is required","param":"firstname","location":"body"},"lastname":{"value":"","msg":"Lastname must not contain number or symbol","param":"lastname","location":"body"},"email":{"value":"","msg":"Email is required","param":"email","location":"body"},"password":{"value":"","msg":"Password is required","param":"password","location":"body"}}]
const errors = results
.map(({ firstname, lastname, email, password }) => {
if(firstname.msg) return firstname.msg;
else if (lastname.msg) return lastname.msg;
else if (email.msg) return email.msg;
else if (password.msg) return password.msg;
else return;
})
.filter(error => error);
if(errors.length > 0) return errors[0];