14

次の配列d3.map()から抜け出すにはどうすればよいですか?[10, 12]

var mydata = [ 
  { '__data__' : 10 }, 
  {'__data__' : 12 }
]; 

私はこれを試してきましたが、うまくいきません:

var mymap = d3.map(mydata, function(d) { 
  return d.__data__; 
});
4

2 に答える 2

9

できません-d3.map()配列全体に関数をマッピングするためではなく、ハッシュのシムです。簡単に言うと、オブジェクトはハッシュのように使用できますが、予期しない動作が発生する場合があります。新しい Javascript 標準はこれに対する解決策を提案しており、実装d3.map()されるまでは同じ効果を得るために使用できます。

詳細については、ドキュメントを参照してください。

于 2013-04-17T12:37:01.923 に答える
6

.map() は別の配列を作成し、指定したものをトラバースし、古い配列の各要素に対して定義した関数を実行すると、それが新しい配列になります。

したがって、配列内のすべての要素に対して単一の操作を実行し、そこから新しい配列を作成したい場合は、.map() を使用します

たとえば、/proc/loadavg から取得しているデータが 5 ~ 15 分の負荷平均ごとに 0.28、0.03、1.0、0.97、0.04 などの数値を示している場合、パーセンテージとして表されるものを確認する必要があります。しかし、計算で 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);
于 2016-06-28T16:32:20.797 に答える