Javascript d3.js将对象错误为字符串

Javascript d3.js将对象错误为字符串,javascript,d3.js,type-conversion,type-coercion,Javascript,D3.js,Type Conversion,Type Coercion,我有一个带有节点的图,这些节点的属性比名称/ID多,但也有一些过滤的程度。当我运行一些日志记录时,出于某种原因d3将对象(节点)误认为字符串 守则: svg.selectAll("line").each(function (l) { let opacity = l.source.degree >= nodeDegreeFilter && l.target.degree >= nodeDegreeFilter ? 1 : 0; d3.select(th

我有一个带有节点的图,这些节点的属性比名称/ID多,但也有一些过滤的程度。当我运行一些日志记录时,出于某种原因d3将对象(节点)误认为字符串

守则:

svg.selectAll("line").each(function (l) {
    let opacity =  l.source.degree >= nodeDegreeFilter && l.target.degree >= nodeDegreeFilter ? 1 : 0;
    d3.select(this).style("opacity", opacity);
    console.info(opacity, l.target, typeof l.target, l);
  });
产生以下输出:

0 North Carolina string Object
{
​
index: 222
​
source: Object { id: "Impotency", group: 2, class: 1, … }
​
target: Object { id: "North Carolina", group: 2, class: 0, … }
​
value: 1
}

有人能帮我弄清楚到底发生了什么吗?

我无法复制这一点(投票结果是我的)
l.target
应该是
{id:“北卡罗来纳州”,组:2,类:0,…}
,而不是
北卡罗来纳州
。获得适当帮助的最好办法是创建一个复制问题的模型。谢谢你的建议。我通常会尝试这样做,但这并不总是可能的。但是,我发现这个bug不是由不正确的类型强制/转换引起的,而是console.log没有报告正确的值。我不知道它为什么会这样做。根据,
console.info
(和
console.log
)可以使用传递参数的字符串表示形式。看起来
l
对象正在使用其
id
属性作为其字符串表示形式。可以使用输出对象表示(尽管一次只接受一个参数)。有关更多信息,请参阅: