2015-02-24 37 views
0

我得到一個「[Error] TypeError:undefined不是一個對象(評估'm.get(」foo「)。name')」錯誤,我沒有完全理解。該代碼直接從d3js API頁面獲取,並在jsfiddle上試用時運行,但在我的計算機上無法運行。TypeError:undefined不是使用d3.map的對象

下面是完整的代碼:


          
  
var m = d3.map([{name: "foo"}, {name: "bar"}], function(d) { return d.name; }); 
 
    console.log(m.get("foo").name);
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

我已經試過這兩個Safari和Chrome,我得到了相同的結果。

+0

也許JSFiddle會有好處? – 2015-02-24 09:14:15

回答

1

我覺得有一個map方法的誤解。它應該直接應用於您的對象,並且不會調用d3之一。例如:

var S=[{name: "foo"}, {name: "bar"}]; 
var m = S.map(function(d) { return d.name; }); 
console.log(m); 

這將返回對象:如果你正在考慮創建一個assosiative多維數組的

["foo","bar"] 

,也許你可以使用喜歡這裏的d3.nest()方法:

var S=[{name: "foo", "coolvalue":5}, {name: "bar", "coolvalue":15}]; 
var w=d3.nest().key(function(d){return d.name}).map(S); 
console.log(w['foo'][0].coolvalue); 

這將輸出5.

當然這都取決於o你最終想達到什麼目的。

希望這會有所幫助

相關問題