2017-06-20 19 views
0

こんにちは私はd3に入っています。今私はこの配列を持っています:d3でオブジェクトの値を取得する

var data = 
    [ 
    {name: "Tim", grades: [2.0, 2.2, 1.7]}, 
    {name: "Mike", grades: [1.7, 1.3, 2.7]}, 
    {name: "Max", grades: [3.0, 2.0, 2.3]}, 
    {name: "Peter", grades: [1.5, 2.0, 1.5]} 
    ]; 

と私は別の配列のすべての名前が必要です。これを行うための "d3-way"はありますか?私はd3.valuesで試しましたが、動作させることができませんでした。

助けがあります

答えて

1

単純なjavascriptで十分です。 d3は実際にこの特定の作業を行うことを容​​易にしません。

マップ(:ここ

var data = [ 
 
    {name: "Tim", grades: [2.0, 2.2, 1.7]}, 
 
    {name: "Mike", grades: [1.7, 1.3, 2.7]}, 
 
    {name: "Max", grades: [3.0, 2.0, 2.3]}, 
 
    {name: "Peter", grades: [1.5, 2.0, 1.5]} 
 
]; 
 
    
 
var names = []; 
 

 
names = data.map(function(d) { return d.name; }) 
 
    
 
console.log(names);

array.map()方法の説明である:それはあなたが探している仕事がないとしてあなたはD3コードでしばしばarray.map()が表示されます)メソッドは、呼び出し配列のすべての要素に関数 を呼び出した結果で新しい配列を作成します。

あなたが本当に同じ効果を達成するためにD3を使用したい場合は、(d3.map使用することができます)(this answerAPI documentationを参照してください)。あなたは、キーのリストを取得するために)(d3.mapの.keys()方法を使用することができます。

var data = [ 
 
    {name: "Tim", grades: [2.0, 2.2, 1.7]}, 
 
    {name: "Mike", grades: [1.7, 1.3, 2.7]}, 
 
    {name: "Max", grades: [3.0, 2.0, 2.3]}, 
 
    {name: "Peter", grades: [1.5, 2.0, 1.5]} 
 
]; 
 

 
console.log(d3.map(data, function(d) { return d.name}).keys());
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.5.0/d3.min.js"></script>

+0

うわーそれは非常に簡単でした!ありがとう – maxze

関連する問題