我有一个图,该图的边在links数组中指定。下面的功能是从链接中解析节点,但我不太了解如何操作。 OR语句中第一个子句的目的是什么,即link.source = nodes [link.source]?
mtcarsDT <- setDT(copy(mtcars))
makeSummaryTable <- function(dt, measure, group){
dt[,.(N = .N, avg = mean(get(measure)), med = median(get(measure)))
, by = eval(text = group)][order(get(group))]
}
makeSummaryTable(mtcars, 'qsec', 'am')
我是JavaScript的新手,在尝试了几次调试后,我仍然迷路。
答案 0 :(得分:1)
似乎您正在尝试通过遍历nodes
数组来创建links
对象,但是您将nodes
变量设置为空数组。相反,您应该将其设置为空对象:nodes = {}
。将links.forEach()
包装在一个函数中会更有意义,因为似乎要多次调用它,然后返回nodes
对象值(如果已创建),或者创建它如果尚不存在。尝试示例(添加了日志,以便您可以查看代码的结果):
const links = [
{source: "A", target: "B"},
{source: "B", target: "C"},
{source: "D", target: "E"},
{source: "E", target: "C"}
];
const nodes = {};
links.forEach((link) => {
link.source = nodes[link.source] || (nodes[link.source] = {
eid: link.source
});
link.target = nodes[link.target] || (nodes[link.target] = {
eid: link.target
});
console.log(link.source);
console.log(link.target);
});
console.log(nodes);