D3.js实现示例的匿名函数和数据绑定机制解释

Anonymous function and data binding mechanism explanation on example of D3.js implementation

我的问题是关于 D3.js 可视化 JavaScript 库的工作。

我有一个对象数组,每个对象包含相同的属性,但具有不同的数值。现在,我想在这个数组的对象中找到特定属性的最大值。

这是执行此操作的 JavaScript 代码:

d3.max(parsedCSV, function (d) {
                return d["AverageGrade"]
      })

此代码在所有存储在 parsedCSV 数组中的学生中找到 AverageGrade 属性 的最大值。它按我的需要工作。

根据d3.max()reference,此函数获取数组和returns其最大值。我不明白的是匿名函数调用的部分:

function (d) { return d["AverageGrade"] }

请您详细说明它是如何工作的,数据是如何绑定的,这种方法的 technical/professional 名称是什么?

谢谢。

这称为 callback function,它基本上提供了对作为第一个参数传递的数组的每次迭代调用的函数的引用。这是 JavaScript 中非常常见的模式,许多库都基于此工作。例如,我假设您使用 d3.csv 来获取已解析的 csv,并提供了一个匿名函数作为第二个参数。这与这里的想法完全相同。如果你使用 d3,你会到处遇到这种情况(例如使用 enter-update-delete 模式,或使用事件)。

仅供参考,对于 d3,您可以使用第二个参数(通常记为 i),它保存集合中项目的索引。