Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中定义的.data(xx.map(函数(d))…)的概念在哪里?_Javascript_D3.js - Fatal编程技术网

JavaScript中定义的.data(xx.map(函数(d))…)的概念在哪里?

JavaScript中定义的.data(xx.map(函数(d))…)的概念在哪里?,javascript,d3.js,Javascript,D3.js,很抱歉标题含糊不清(我稍后会更新它,我也会更新标签)。在我试图理解的一些代码中,我发现了以下内容: var map = svg.append("svg") .attr({x: 10, y: 10) .selectAll("path") .data(cl.map(function(d) { // ???? return d3.range(d.x.length).map(function(i) { return {x: d.x[i], y: d.y[i]};})

很抱歉标题含糊不清(我稍后会更新它,我也会更新标签)。在我试图理解的一些代码中,我发现了以下内容:

var map = svg.append("svg")
.attr({x: 10,
       y: 10)
.selectAll("path")
.data(cl.map(function(d) { // ????
        return d3.range(d.x.length).map(function(i) {
    return {x: d.x[i], y: d.y[i]};});}))
.enter().append("svg:path")
.attr("d", lineMap)
.style("fill", "none")
.style("stroke", "darkgreen")
    .style("stroke-width", 1);

cl
是一组作为路径连接的等高线数据。我的问题是关于我标记的部分????。我理解这在一般意义上,甚至是细节上的作用。由于我对这些东西不熟悉,我想知道
.data
.map
的思想是在哪里被记录的,它们属于哪种语言(JavaScript?JSON?)。我环顾四周,在谷歌搜索“地图数据”时,要找到答案有点困难!另外,在大多数JavaScript函数中,d概念似乎是必需的名称吗?或者只是定制?

这里有几个指针:

.map
是一个javascript数组函数(注意d3.array也有一个map函数),它返回一个新数组,结果是为原始数组中的每个元素调用回调函数

.data
是d3概念,是将数据集绑定到选择的方法


希望这有帮助。

语言是javascript,
data
map
函数是d3.js自己的。您可以在api文档和中找到关于它们的更多信息。
data
函数将数据连接到selectAll调用生成的选定元素中。
map
函数将数据嵌套到您需要的表单中,在本例中是line函数所期望的。非常感谢@user1614080。我曾经看过
nest.map
,但是被
nest
部分抛弃了-我不认为它的应用更一般。非常感谢。@user1614080在问题的代码中,它实际上是Javascript的
.map()
d3.range()
返回一个普通的Javascript数组,从OP的描述来看,
cl
。@Lars是的,我真的以为OP在做类似的事情
d3.nest.key(函数(d){return d.some_name;})。条目(some_数组)。OP不是,尽管您可以在这里使用它来生成line function.OP的数据。在阅读了所有这些伟大的链接之后,我发现
nest
基本上用于对现有数据进行子集和排序。我的示例不需要这样做,因为我的数据是随时可以传递的:一个带有x和y标签的数组数组,[…],[…],…],因此不需要
nest
,而嵌套的
map
匿名函数在如何迭代整个数据集方面非常有意义。谢谢大家。链接到alignedleft.com对解释这一点非常有帮助。