diff --git a/pic/pic1.jpg b/pic/pic1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48b56507708523d1e908acd9de62cd809102ade6 Binary files /dev/null and b/pic/pic1.jpg differ diff --git a/pic/pic2.jpg b/pic/pic2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..72d794afd1f4898fee9ace0f38a8d2b3f945eae7 Binary files /dev/null and b/pic/pic2.jpg differ diff --git a/pic/pic3.jpg b/pic/pic3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7ed031fb2d0a36af8389a7f4980a3580b9810d3b Binary files /dev/null and b/pic/pic3.jpg differ diff --git a/qinhao.html b/qinhao.html new file mode 100644 index 0000000000000000000000000000000000000000..ddc34b4eb9bc86877ffab9c48d66b6ece18d9549 --- /dev/null +++ b/qinhao.html @@ -0,0 +1,196 @@ + + + + + + Document + + + + +
+ + +
    +
  1. +
  2. +
  3. +
+ + < + > +
+ + + + diff --git a/qinhao.js b/qinhao.js new file mode 100644 index 0000000000000000000000000000000000000000..7d454b13d3d27ecd22ca6eb3d0fd496a64e2dbf9 --- /dev/null +++ b/qinhao.js @@ -0,0 +1,181 @@ +const cityData = [ + { + parentValue: 1, + value: 11, + label: "北京市", + }, + { + parentValue: 11, + value: 111, + label: "东城区", + }, + { + parentValue: 11, + value: 112, + label: "西城区", + }, + { + parentValue: 1, + value: 12, + label: "上海市", + }, + { + parentValue: 12, + value: 121, + label: "黄浦区", + }, + { + parentValue: 12, + value: 122, + label: "徐汇区", + }, + { + parentValue: 1, + value: 13, + label: "广东省", + }, + { + parentValue: 13, + value: 131, + label: "广州市", + }, + { + parentValue: 131, + value: 1311, + label: "天河区", + }, + { + parentValue: 131, + value: 1312, + label: "越秀区", + }, + { + parentValue: 132, + value: 1321, + label: "南山区", + }, + { + parentValue: 132, + value: 1322, + label: "罗湖区", + }, + { + value: 1, + label: "中国", + }, + { + parentValue: 13, + value: 132, + label: "深圳市", + }, +]; + +/* * + 1.请利用递归方法实现一个函数,把上方数据递归成有层级的数据, + 2.把value字段变成id字段,label字段变成title字段,children字段变成child字段, + 3.去掉parentValue字段,最终得到以下数据。需要一模一样的数据 + ⚠️注意:不允许使用三层循环,请使用递归方法 + [ + { + id: 1, + title: '中国', + child: [ + { + id: 11, + title: '北京市', + child: [ + { + id: 111, + title: '东城区' + }, + { + id: 112, + title: '西城区' + } + ] + }, + { + id: 12, + title: '上海市', + child: [ + { + id: 121, + title: '黄浦区' + }, + { + id: 122, + title: '徐汇区' + } + ] + }, + { + id: 13, + title: '广东省', + child: [ + { + id: 131, + title: '广州市', + child: [ + { + id: 1311, + title: '天河区' + }, + { + id: 1312, + title: '越秀区' + } + ] + }, + { + id: 132, + title: '深圳市', + child: [ + { + id: 1321, + title: '南山区' + }, + { + id: 1322, + title: '罗湖区' + } + ] + } + ] + } + ] + } +] + * */ + +// 具体实现 +const getArea = (data) => { + // 在这里编写代码 + const Recursion = (parentId) => { + const Nodes = null; + if (parentId === null) { + Nodes = data.filter((item) => !item.parentValue); + } else { + Nodes = data.filter(item.parentValue === parentId); + } + + return Nodes.map((node) => { + const nextNodes = { + id: node.value, + title: node.label, + }; + + const childeNodes = Recursion(node.value); + if (childeNodes.length > 0) { + nextNodes.child = childeNodes; + } + + return nextNodes; + }); + }; + + const resData = Recursion(null); + result.push(...resData); +}; +const result = []; +getArea(cityData); +console.log(result);