Skip to content

Instantly share code, notes, and snippets.

@akobashikawa
Created October 24, 2018 06:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save akobashikawa/7b443a1c7ee839218269aedcd512c326 to your computer and use it in GitHub Desktop.
Save akobashikawa/7b443a1c7ee839218269aedcd512c326 to your computer and use it in GitHub Desktop.
D3 tree
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Decision Tree</title>
</head>
<body>
<ul id="tree"></ul>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script>
const generateItem = () => {
const item = [];
const n = Math.floor(Math.random() * 10);
// console.log(n);
for (let i = 0; i <= n; i++) {
const v = Math.floor(Math.random() * 10);
item.push(v);
}
// console.log(item);
return item;
};
const putInTree = (tree, item) => {
let pointer = tree;
for (let n = 0; n < item.length; n++) {
let v = item[n];
if (!pointer.hasOwnProperty(v)) {
pointer[v] = {};
}
pointer = pointer[v];
}
}
const tree = [
{
name: 1,
children: [
{name: 3}
]
},
{
name: 2,
children: [
[
{name: 4}
]
]
}
];
setInterval(() => {
// const item = generateItem();
// console.log(item);
// putInTree(tree, item);
// console.log(tree);
}, 1000);
d3.select('ul#tree')
.selectAll('li')
.data(tree)
.enter()
.append('li')
.text(function(d) {
console.log(d);
return d.name;
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment