You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ES6语法将含嵌套键的对象转换为对象数组

用ES6语法转换错误对象为指定格式数组

原始输入对象

const originalData = {
  "3": {
    name: ["Missing data for required field."],
  },
  "5": {
    id: ["Same id exist."],
  },
};

目标输出数组

const targetData = [
  {
    key: "name",
    message: "Missing data for required field.",
    row: 3,
  },
  {
    key: "id",
    message: "Same id exist.",
    row: 5,
  },
];

ES6实现代码

const convertedData = Object.entries(originalData).flatMap(([rowStr, errors]) => {
  const row = Number(rowStr);
  return Object.entries(errors).flatMap(([key, messages]) => {
    return messages.map(message => ({ key, message, row }));
  });
});

逻辑拆解

  • Object.entries(originalData):把原始对象转成[行号字符串, 该行错误对象]的键值对数组,实现逐行遍历错误
  • 外层flatMap:将每行处理后的结果直接合并成一维数组,避免产生嵌套数组
  • 把行号字符串转为数字类型,匹配目标格式中row的数值类型要求
  • Object.entries(errors):遍历当前行的所有错误字段,拿到字段名和对应的错误消息数组
  • 内层flatMap+map:将每个错误消息单独转成目标格式的对象,哪怕一个字段有多条错误,也能生成对应的多个对象

内容的提问来源于stack exchange,提问作者Aniruddha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:33:31