-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
21 lines (20 loc) · 722 Bytes
/
index.js
File metadata and controls
21 lines (20 loc) · 722 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function create(array) {
var tree = new Map()
array.map((value, index) => {
for (var i = 0; i < value.length; i++) {
if (tree.has(i)) {
if (tree.get(i).has(value.substring(0, i + 1))) {
value.length == i + 1 ? tree.get(i).get(value.substring(0, i + 1)).add(index) : null
} else {
tree.get(i).set(value.substring(0, i + 1), value.length == i + 1 ? new Set([index]) : new Set([]))
}
} else {
tree.set(i, new Map([[value.substring(0, i + 1), value.length == i + 1 ? new Set([index]) : new Set()]]))
}
}
})
return tree
}
module.exports = {
create
}