我正在使用d3.js v4。我在google chrome浏览器的控制台上执行了以下代码。
var theData = [ 1, 2, 3 ]
var p = d3.select("body").selectAll("p")
.data(theData)
.enter()
.append("p")
.text("hello ");
console.log(p);
我期待这样的结果:
但我得到的是如下所示
有人可以帮助我,为什么会出现这种差异?
答案 0 :(得分:6)
根据D3 4.x API:
选择不再使用原型链注入子类化Array;它们现在是普通物体,提高了性能。
因此,在D3版本4.x中,选择是对象。
此外,值得一提的是您使用的压缩版本(https://d3js.org/d3.v4.min.js)会返回:
zi {_groups: Array[1], _parents: Array[1]}
在正常版本(https://d3js.org/d3.v4.js)中,console.log
返回应为:
Selection {_groups: Array[1], _parents: Array[1]}
如果您希望获得与D3 v3类似的内容,请使用nodes()
:
var theData = [ 1, 2, 3 ]
var p = d3.select("body").selectAll("p")
.data(theData)
.enter()
.append("p")
.text("hello ");
console.log(p.nodes());
<script src="https://d3js.org/d3.v4.js"></script>