zoukankan      html  css  js  c++  java
  • 数据扁平化笔记。

    数据结构:

    let datas = [
      {
        id: 1,
        checked: true,
        name: '第一阶段',
        children: [
          {
            id: 2,
            checked: false,
            name: '第一章',
            children: [
              {
                id: 3,
                checked: false,
                name: '简介',
              },
              {
                id: 4,
                checked: false,
                name: '能做什么',
              }
            ]
          },
          {
            id: 5,
            checked: false,
            name: '第二章',
            children: [
              {
                id: 6,
                checked: false,
                name: '简介',
              },
              {
                id: 7,
                checked: false,
                name: '能做什么',
              }
            ]
          },
        ]
      },
      {
        id: 8,
        checked: false,
        name: '第二阶段',
        children: [
          {
            id: 9,
            checked: false,
            name: '第一章',
            children: [
              {
                id: 10,
                checked: false,
                name: '简介',
              },
              {
                id: 11,
                checked: false,
                name: '能做什么',
              }
            ]
          }
        ]
      },
      {
        id: 12,
        checked: false,
        name: '第三阶段',
        children: [
          {
            id: 13,
            checked: false,
            name: '第一章',
            children: [
              {
                id: 14,
                checked: true,
                name: '这是进阶章',
              },
              {
                id: 15,
                checked: false,
                name: '能做什么',
              }
            ]
          }
        ]
      },
    ];
    数据扁平化(针对有对象)普通写法:
        function flat (items) {
          let newArr = []; // 存储扁平化数组
          items.forEach(item => {
            newArr.push(item);
            if (Array.isArray(item.children)) {
              newArr = newArr.concat(item.children)
              flat(item.children);
            }
          });
    
          return newArr;
        }
    数据扁平化reduce写法:
        function flat (items, d = 0) {
          return items.reduce((prev, current) => {
            return d > 0 ? prev.concat(Array.isArray(current.children) ? flat(current.children, d + 1) : current) : items.slice();
          }, [])
        }
  • 相关阅读:
    Educational Codeforces Round 66 (Rated for Div. 2)
    数学模板整理
    多项式全家桶
    [Scoi2016]背单词(trie+贪心)
    Codeforces Round #563 (Div. 2) 划水记
    应届生秋招可能会遇到的三个问题
    基于vue(element ui) + ssm + shiro 的权限框架
    ASP.NET 分页+组合查询 练习
    登录,注册页面练习
    HTML css 样式表
  • 原文地址:https://www.cnblogs.com/yxfboke/p/12389460.html
Copyright © 2011-2022 走看看