在您的行(或訪問)功能,使用索引(第二個參數)來限制的行數:
如果指定了一個行轉換功能,對指定的函數調用對每行,傳遞一個表示當前行(d)的對象,索引(i)從零開始,爲第一個非標題行以及列名稱數組。 (重點煤礦)
例如,在下面的例子中,我限制的行數爲5,即使CSV具有10行(我使用<pre>
元件來模擬CSV因爲我不能上傳使用堆棧段)真正的CSV:
var data = d3.csvParse(d3.select("#csv").text(), row);
function row(d, i) {
if (i < 5) return d;
}
console.log("data length is " + data.length);
console.log("data is " + JSON.stringify(data));
pre {
display: none;
}
<script src="https://d3js.org/d3.v4.min.js"></script>
<pre id="csv">foo,bar
12,23
13,22
43,66
3,4
66,55
43,48
32,11
11,11
21,23
78,17</pre>
有想法,如果CSV實際上已經2000萬行,就像你說的,你還是得等到全部文件被下載。行函數僅限制解析CSV時創建的數據數組:當您到達特定行時,它不會奇蹟般地停止下載/解析過程。