Javascript 多维数组切片多个html表和导航d3.js

Javascript 多维数组切片多个html表和导航d3.js,javascript,csv,d3.js,Javascript,Csv,D3.js,我的目的是将一个长文件.csv数据放入几个html表中,每个表有500行。 示例:.csv中的5000行创建10个表,每个表具有不同的内容(即第0-500行、第500-1000行,…);另外:10个链接可以到达表格 任务:切片数组以获取每个表的数据 基本“伪”代码-到目前为止: //创建链接 var rowli = boxlist.selectAll("li") .data(groups) .enter()

我的目的是将一个长文件.csv数据放入几个html表中,每个表有500行。 示例:.csv中的5000行创建10个表,每个表具有不同的内容(即第0-500行、第500-1000行,…);另外:10个链接可以到达表格

任务:切片数组以获取每个表的数据

基本“伪”代码-到目前为止:

//创建链接

var rowli = boxlist.selectAll("li")
                .data(groups)
                .enter()
                .append("li")
                .append("div")
                .text(function(d) {return d.length;})
                .on("click",Slide);
                .on("mousedown",tabulate(startslice=0,stopslice=500);

//function that draws table:

function tabulate(data, groups,startslice, stopslice) {

var boxlist = d3.select("#ul_id")
                .append("ul")

// create links with popout transition, target is view-select.


//create table

var table = d3.select("#container").append("table"),
    tbody = table.append("tbody");

// create a row for each object in the data

var rows = tbody.selectAll("tr")
    .data(data.slice(startslice,stopslice)
    .enter()
    .append("tr")

// each row appends td

  rows.append("td")
    .html(function(d) { return d[0];});
return table;
};

// render the table

var peopleTable = d3.text("data.csv", function(data) {

var arrofarrays = d3.csv.parseRows(data);

var groupsize = 500;
var groups = arrofarrays.map(function(item, index){
  return index % groupsize === 0 ? arrofarrays.slice(index, index+groupsize) : null;})
.filter(function(item) {return item;});

var peopleTable = tabulate(arrofarrays, groups);

}); 
我想将事件处理程序附加到每个链接:

function sliceArray (startslice,stopslice) {
 arrofarrays.slice(startslice,stopslice);
};
我不知道如何以编程方式分配变量“startslice,stopslice”,以便每个链接都有自己的值


我的目的是在d3.js中实现这一点。

我最终选择了以下解决方案:

var rowli = boxlist.selectAll("li")
                .data(groups)
                .enter()
                .append("li")
                .append("div")
                .attr("class","innerLi")
                .attr("data-vin","view-select")
                .attr("data-sd","popout")
                .attr("id",function(d, i){var result='a'+i; return result; })
                .text(function(d) {return d.length;})
                .on("click",Slide);

     boxlist.selectAll("div").on("mousedown",function(d,i) { 
        tabulate (arrofArro, groups, start=+i*groupsize, stop=(+i+1)*groupsize); 
    });
在这里,我使用“+I”获得一个变量,该变量在每次调用数据集时都会增加。我的数据集不包含我本可以使用的任何数据

“start”和“stop”被传递给data.slice(start,stop),它位于绘制html表的“tablate”函数中


这给了我想要的效果:每个链接调用数据集的不同部分。

听起来你只是需要。嗨,谢谢-是的,我理解。我做了一些编辑。我没有想到的是如何以编程方式将切片值分配给链接。(我在代码中有0和500。在到达数组末尾之前,这将是500的倍数。是的,这就是我被卡住的地方。在d3.js中如何进行这样的计数?循环?'I'和'I*500',而你不需要d3。是的,循环应该这样做。