From 9ac554bb4c96be47c0a7ecbb2494a2bfa0eba5f2 Mon Sep 17 00:00:00 2001 From: iapyang Date: Mon, 20 Mar 2023 14:54:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=90=9E=20fix(FDL-2946):=20=E6=8F=90?= =?UTF-8?q?=E5=8D=87=E5=A4=A7=E6=95=B0=E6=8D=AE=E9=87=8F=E4=B8=8Binittree?= =?UTF-8?q?=E7=9A=84=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/structure/tree.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/core/structure/tree.js b/src/core/structure/tree.js index 32e7665b4..359af5cab 100644 --- a/src/core/structure/tree.js +++ b/src/core/structure/tree.js @@ -30,20 +30,23 @@ initTree: function (nodes) { var self = this; this.clear(); - var queue = []; + var queue = new Set(); + BI.each(nodes, function (i, node) { var n = new BI.Node(node); n.set("data", node); self.addNode(n); - queue.push(n); + queue.add(n); }); - while (!BI.isEmpty(queue)) { - var parent = queue.shift(); + while (queue.size > 0) { + var [parent] = queue; + queue.delete(parent); + var node = parent.get("data"); BI.each(node.children, function (i, child) { var n = new BI.Node(child); n.set("data", child); - queue.push(n); + queue.add(n); self.addNode(parent, n); }); } From 72c7d698a453d87f2d6bdc55c4e84f20bb2d6e32 Mon Sep 17 00:00:00 2001 From: iapyang Date: Wed, 22 Mar 2023 15:38:28 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A6=84=20refactor:=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BAforEach?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/structure/tree.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/structure/tree.js b/src/core/structure/tree.js index 5ed377147..62f0e1d71 100644 --- a/src/core/structure/tree.js +++ b/src/core/structure/tree.js @@ -38,8 +38,8 @@ self.addNode(n); queue.add(n); }); - while (queue.size > 0) { - var [parent] = queue; + + queue.forEach(parent => { queue.delete(parent); var node = parent.get("data"); @@ -49,7 +49,7 @@ queue.add(n); self.addNode(parent, n); }); - } + }); }, _toJSON: function (node) {