From cec0803aff7432211bc551c5112a954c08587751 Mon Sep 17 00:00:00 2001 From: Seth Trowbridge Date: Tue, 25 Feb 2025 15:46:03 -0500 Subject: [PATCH] walker started --- walker.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 walker.js diff --git a/walker.js b/walker.js new file mode 100644 index 0000000..cba07af --- /dev/null +++ b/walker.js @@ -0,0 +1,34 @@ + +const set = new Set(); +function Walk(obj, parentObject, propertyName, path=[]) +{ + if(obj !== null && typeof obj === "object") + { + if(set.has(obj)) + { + console.log("ive been to", obj, "quitting"); + return; + } + else + { + set.add(obj); + console.log("ive never seen", obj, "here are its fields:"); + console.log("-----------------"); + for(let key in obj) + { + const val = obj[key]; + console.log(key, val); + Walk(val, obj, key); + } + console.log("-----------------"); + } + } + else + { + console.log(obj, "is a leaf") + } +} + +const root = {hey:"1", deep:{}, arr:["a", "b"]}; +root.circ = root; +Walk(root);