Понимание того, как D3.js связывает данные с узлами

Я читаю документацию D3.js, и мне трудно понятьselection.data метод из документации.

Это пример кода, приведенный в документации:

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; });

Я понимаю большую часть этого, но что происходит с.data(function(d) { return d; }) разделvar td заявление?

Мое лучшее предположение следующее:

var tr оператор связал массив из четырех элементов с каждым узлом trvar td Затем оператор использует этот четырехэлементный массив в качестве своих данных, так или иначе

Но как.data(function(d) { return d; }) на самом деле получить эти данные, и что это возвращает?

Ответы на вопрос(3)

Ваш ответ на вопрос