如何从API返回的校验错误对象中提取键值生成指定格式错误集合
原有代码问题点
- 你声明的
object1是对象类型,但目标结果是数组,结构不匹配 - 动态键名需要用
[key]包裹,直接写key会被识别为固定字符串"key",不会替换为遍历的字段名 Object.assign用法错误,每次循环直接覆盖object1的值,最终只会保留最后一个字段的内容
实现代码
基础循环写法
const errors = [] const originErr = this.registerErrors for (const key in originErr) { // 取当前字段的第一条错误提示 const msg = originErr[key][0] errors.push({ [key]: msg }) } console.log(errors)
简洁函数式写法
const errors = Object.entries(this.registerErrors).map(([field, errList]) => ({ [field]: errList[0] }))
如果只需要保留email字段的错误,额外加一层过滤即可:
const errors = Object.entries(this.registerErrors) .filter(([key]) => key === 'email') .map(([field, errList]) => ({ [field]: errList[0] }))
运行后即可得到你预期的输出格式。
内容的提问来源于stack exchange,提问作者KoulJak
相关产品推荐
相关产品推荐

