1 | /**
|
2 | * The degree of a vertex is the number of incident edges, with loops counted twice.
|
3 | *
|
4 | * http://en.wikipedia.org/wiki/Degree_(graph_theory)
|
5 | *
|
6 | * @param {Object} edges
|
7 | * @param {String} nodeId
|
8 | * @returns {Number} degree
|
9 | */
|
10 |
|
11 | const getDegree = (edges, nodeId) => {
|
12 | var degree = 0
|
13 |
|
14 | const countIncidents = (id) => {
|
15 | if (id === nodeId) {
|
16 | degree++
|
17 | }
|
18 | }
|
19 |
|
20 | for (var edgeId in edges) {
|
21 | var edge = edges[edgeId]
|
22 |
|
23 | edge.forEach(countIncidents)
|
24 | }
|
25 |
|
26 | return degree
|
27 | }
|
28 |
|
29 | module.exports = getDegree
|