Skip to content

0305 今日总结

手撕代码

防抖节流等各种手写,http和网络,浏览器原理,性能优化,Webpack

树形转换,朋友发的题

js
const entries = [{
  "province":"浙江",
  "city":"杭州",
  "name":"西湖"
}, {
  "province":"四川",
  "city":"成都",
  "name":"锦里"
}, {
  "province":"四川",
  "city":"成都",
  "name":"方所"
}, {
  "province":"四川",
  "city":"阿坝",
  "name":"九寨沟"
}];

const level = ["province","city","name"];


const result = [
  {
   "value":"浙江",
   "children": [
      {
       "value":"杭州",
       "children": [
          {
           "value":"西湖"
          }
        ]
      }
    ]
  },
  {
   "value":"四川",
   "children": [
      {
       "value":"成都",
       "children": [
          {
           "value":"锦里"
          },
          {
           "value":"方所"
          }
        ]
      },
      {
       "value":"阿坝",
       "children": [
          {
           "value":"九寨沟"
          }
        ]
      }
    ]
  }
]

result = transformTree(entries, level)

我的答案:查看在线效果

js
const transformTree = (entries, level) => {
  const resultArr = [...new Set(entries.map(item => item.province))].map(name => {
    return ({ value: name, children: []})
  })

  for (let item of resultArr) {
    const citiesSet = [...new Set(entries.filter(e => e.province === item.value).map(v => v.city))]
    for (let s of citiesSet) {
      let values = [...new Set(entries.filter(e => e.city === s).map(m => m.name))].map(name => ({ value: name }))
      item.children.push({ value: s, children: values })
    }
  }

  return resultArr
}

好文推荐

有感好文

TOP3

有感好文

看了下作者的 视频介绍,很多东西可以学习

  • 布局系统
  • Api 自动引入
  • 组件自动引入
  • 图标自动引入
  • VueUse 支持

.. 等

我的文件助手 2022/2/26 22:35:46

看了下作者的 视频介绍,很多东西可以学习

  • 布局系统
  • Api 自动引入
  • 组件自动引入
  • 图标自动引入
  • VueUse 支持

.. 等

对于快速模板化进行开发很便利,有点类似 dva 的模式,

github 地址:https://github.com/dishait/tov-template

项目/博客推荐

值得学习的项目/作者

博客

工具

面经相关

八股文相关

专栏

文章

TODOS

短期内要做的事情

Released under the MIT License.