secondNetwork = {
var nodes = data.nodes;
const topic = nodes.filter(d => d.labels[0] === "Topic").slice(0, 1);
const tweets = nodes.filter(d => d.labels[0] === "Tweet");
const trials = nodes.filter(d => d.labels[0] === "ClinicalTrial");
const products = nodes.filter(d => d.labels[0] === "Product");
const candidateNodes = topic.concat(
tweets,
trials,
products
);
const nodeIds = candidateNodes.map(d => d.id);
function checkId(a, v) {
return a.some(av => v === av);
}
const candidateLinks = [];
const links = data.links;
for (let i in links) {
if (
checkId(nodeIds, links[i].source) &&
checkId(nodeIds, links[i].target)
) {
candidateLinks.push(links[i]);
}
}
const filteredLinks = candidateLinks;
const filteredNodes = Object.values(
filteredLinks.reduce(function(t, v) {
if (!t[v.source]) {
t[v.source] = candidateNodes.filter(o => o.id === v.source)[0];
}
if (!t[v.target]) {
t[v.target] = candidateNodes.filter(o => o.id === v.target)[0];
}
return t;
}, {})
);
return { nodes: filteredNodes, links: filteredLinks };
}