javascript 展平嵌套对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 展平嵌套对象相关的知识,希望对你有一定的参考价值。

const nested = {
  id: 1,
  children: [
    { id: 2 },
    { id: 3,
      children: [{ id: 5 }, { id: 6 }]
    },
    { id: 4 }
  ]
}

const flatten = function(obj) {
  const array = Array.isArray(obj) ? obj : [obj];
  return array.reduce(function(acc, value) {
    acc.push(value);
    if (value.children) {
      acc = acc.concat(flatten(value.children));
      delete value.children;
    }
    return acc;
  }, []);
}

flatten(nested);
// => [ { id: 1 }, { id: 2 }, { id: 3 }, { id: 5 }, { id: 6 }, { id: 4 } ]

以上是关于javascript 展平嵌套对象的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中展平嵌套数组? [复制]

展平/取消展平嵌套 JSON 对象的最快方法

展平嵌套的 JSON 对象

如何使用 linq 表达式展平嵌套对象

如何使用 linq 表达式展平嵌套对象

使用 AutoMapper 展平嵌套对象的更好方法?