diff --git a/images/1.png b/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..df9b17b72231f2e0d2bab1c8efaefc4997a28067 Binary files /dev/null and b/images/1.png differ diff --git a/images/2.png b/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..61e4df68e9f2a1c5a92393a4f69a70a2040f55a8 Binary files /dev/null and b/images/2.png differ diff --git a/images/3.png b/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..345b85d37d006efea2e98173427e2081ad0875eb Binary files /dev/null and b/images/3.png differ diff --git a/images/4.png b/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..3d561f1f1403f196ed629053ff39e85ee9093531 Binary files /dev/null and b/images/4.png differ diff --git a/qumingxu.html b/qumingxu.html new file mode 100644 index 0000000000000000000000000000000000000000..0351c056326db196ad5ae18b241281809054de1d --- /dev/null +++ b/qumingxu.html @@ -0,0 +1,142 @@ + + + + + + + 轮播图 屈明旭 + + + +
+
<
+
>
+ +
+
+
+ + + + + + + \ No newline at end of file diff --git a/qumingxu.js b/qumingxu.js new file mode 100644 index 0000000000000000000000000000000000000000..c12a0a49f06dd35132437eb1cedbd15d46a8fc16 --- /dev/null +++ b/qumingxu.js @@ -0,0 +1,182 @@ +const fs = require('fs'); + +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 tree = (parentValue) => { + const node = []; + const items = data.filter(item => item.parentValue === parentValue); + + for (const item of items) { + + const newNode = { + id: item.value, + title: item.label + }; + + const children = tree(item.value); + if (children.length > 0) { + newNode.child = children; + } + + node.push(newNode); + } + + return node; + } + + result.push(...tree(undefined)); +} + +const result = []; +getArea(cityData); +console.log(result);