如何使用d3.map()
從以下數組中獲取[10, 12]
?d3.js:如何使用map函數?
var mydata = [
{ '__data__' : 10 },
{'__data__' : 12 }
];
我一直在嘗試這一點,但它不工作:
var mymap = d3.map(mydata, function(d) {
return d.__data__;
});
如何使用d3.map()
從以下數組中獲取[10, 12]
?d3.js:如何使用map函數?
var mydata = [
{ '__data__' : 10 },
{'__data__' : 12 }
];
我一直在嘗試這一點,但它不工作:
var mymap = d3.map(mydata, function(d) {
return d.__data__;
});
你不能 - d3.map()
不是跨越陣列映射功能,但對於哈希墊片。簡而言之,雖然對象可以像散列一樣使用,但有時會出現意想不到的行爲。一個新的Javascript標準爲此提出瞭解決方案,並且在實施之前,d3.map()
可以用於相同的效果。
更多信息請訪問the documentation。
.map()只是創建了另一個數組,它遍歷了你給它的任何東西,並執行你在舊數組中每個元素上定義的函數,然後變成新數組。
所以,如果我想在一個陣列上執行的所有元素的單一操作,並作出新的陣列出來的,我會使用.MAP()
例如,我需要看到的東西表示爲百分比,當我從/ proc/loadavg獲得的數據給我的數字爲0.28,0.03,1.0,0.97,0.04等每5-15分鐘負載平均等。但我還需要在我的計算中運行nproc的輸出,並且nproc會給我多少內核分配哪些內容。所以我創建一個數組,每一次的/ proc/loadavg給了我一個新值,我把每一個新的值到一個數組...
這將是您的初始數據:
var data = [0.28,0.03,1.0,0.97,0.04];
var dataSize = 5;
這可能是該功能使用適用於所有指標的原始數據數組:
percent = function() {
return (loadval/(numCores*100));
}
這將是它映射到一個新的數組與轉化值:
data = d3.range(dataSize).map(percent);
關於如何按照他的例子得到[10,12]的建議? – helixmat
您可以簡單地執行'mydata.map(function(d){return d .__ data;})'。 –