From 40d8f01deb7a9738bfa2d3f6f1691d00721a1060 Mon Sep 17 00:00:00 2001
From: yanshu <837955643@qq.com>
Date: Tue, 3 Jun 2025 14:43:29 +0800
Subject: [PATCH] =?UTF-8?q?=E9=BB=84=E6=B4=81=2018873901200?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
huangjie.html | 289 ++++++++++++++++++++++++++++++++++++++++++++++++++
huangjie.js | 172 ++++++++++++++++++++++++++++++
2 files changed, 461 insertions(+)
create mode 100644 huangjie.html
create mode 100644 huangjie.js
diff --git a/huangjie.html b/huangjie.html
new file mode 100644
index 0000000..d1ef4fd
--- /dev/null
+++ b/huangjie.html
@@ -0,0 +1,289 @@
+
+
+
+
+
+
+ 原生JS轮播图
+
+
+
+
+
+
+
+
+
+
❮
+
❯
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/huangjie.js b/huangjie.js
new file mode 100644
index 0000000..b775724
--- /dev/null
+++ b/huangjie.js
@@ -0,0 +1,172 @@
+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, parentValue = 1) => {
+ // 在这里编写代码
+ // 找出当前层级的所有项
+ const currentLevelItems = data.filter(item => item.parentValue === parentValue);
+ return currentLevelItems.map(item => {
+ const newItem = {
+ id: item.value,
+ title: item.label,
+ }
+ // 对于子数组
+ const children = getArea(data, item.value);
+ if (children.length > 0) {
+ newItem.child = children;
+ }
+ return newItem;
+ })
+}
+const result = [{ id: 1, title: '中国', child: [] }];
+result[0].child = getArea(cityData);
+console.log(result);
+console.log(JSON.stringify(result, null, 2));
--
Gitee