从本教程:http://bl.ocks.org/mbostock/3808234,我读到
var text = svg.selectAll("text")
.data(data, function(d) { return d; });有时,我从其他教程(如下面的教程)中阅读,它适用于它们的用例:
var text = svg.selectAll("text")
.data(data);本教程不会使用第二种方式,因为无法触发输入和退出。那么,这两种方式在概念上有什么区别呢?
发布于 2015-10-26 10:39:59
从关于selection.data的精细手册中
selection.data([values[, key]])如果没有指定键函数,则将第一个数据的值赋值给当前选择中的第一个元素,将第二个数据赋给第二个选定元素,等等。..。 可以指定一个键函数键([d,i ])来控制数据如何连接到元素(这取代了默认的按索引行为)。key函数返回一个字符串,该字符串用于根据以前绑定的数据将数据与其对应的元素连接起来。
在您的示例中,function(d) { return d; }指定密钥是使用的字母。以后的调用将能够确定哪个节点代表什么字母,从而确定输入和退出选择。
没有这个键,除了传递数据的顺序之外,您就没有任何数据来匹配调用之间的节点。
https://stackoverflow.com/questions/33342157
复制相似问题