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