.data(function(d) { return d; }) 在 d3 中返回什么?

use*_*274 5 javascript d3.js

var matrix = [
  [11975,  5871, 8916, 2868],
  [ 1951, 10048, 2060, 6171],
  [ 8010, 16145, 8090, 8045],
  [ 1013,   990,  940, 6907]
];

var tr = d3.select("body").append("table").selectAll("tr")
    .data(matrix)
  .enter().append("tr");

var td = tr.selectAll("td")
    .data(function(d) { return d; })
  .enter().append("td")
    .text(function(d) { return d; });
Run Code Online (Sandbox Code Playgroud)

我不明白 d 在这里代表什么。有人可以这么好心地引导我完成代码吗?

参考:https : //github.com/mbostock/d3/wiki/Selections#wiki-remove

Lar*_*off 4

这里有一个嵌套选择,即您正在进行选择,然后基于该选择进行选择。这也是对参数中函数的解释.data()——它嵌套在第一个函数的下面,因此可以引用它。

特别是,您在 中传递数组的数组.data(matrix)。D3 将为该矩阵的每个元素(即每个数组)执行某些操作。在这里,它绑定到附加tr元素。因此,当您.data()再次调用时,您可以引用绑定到这些元素(s)的数据trfunction(d) { return d; }只是说 D3 应该使用已经绑定到它的数据。由于这是一个数组,D3 将为它的每个元素执行一些操作,即附加表格单元格元素。