js 多级嵌套数组对象 怎么转化成普通的数组对象?

vue 后端返回的数据如图,怎么让图中多级嵌套的数组对象改成一下格式:
image.png
需要改成以下格式:
image.png
请求各位大佬赐教 急急急!!!

阅读 5k
4 个回答
console.log(data
  .map(dep => {
    return dep.declareTypeDtos.map(dot => {
      dot.deptId = dep.deptId;
      dot.deptName = dep.deptName;
      return dot;
    });
  })
  .flat());

这看结构不像是无限嵌套的,一共就两层,第一层 depar,第二层 declare。所以写个双层 for 循环就好了啊。

或者用函数式写法,外层用 flat,内层用 map 就处理出来了。

function flatDeep(arr, d = 1) {
   return d > 0 ? arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatDeep(val, d - 1) : val), [])
                : arr.slice();
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题