2016-04-23 9 views
0
このブロックで

、I、後で端に.parse貼り付けられているなぜこのこの「構文解析」コールは何をしていますか? (D3時間フォーマット)

function type(d) { 
    d.date = parseDate(d.date); 
    d.price = +d.price; 
    return d; 
} 

ように使用され、この

var parseDate = d3.time.format("%b %Y").parse; 

参照

https://bl.ocks.org/mbostock/1667367

私が見た他のすべての例がそれを必要としないとき?

私は他のREPLsにその構文を使って実験しようとすると、私は型エラーを取得:

parseDate.parse is not a function 

答えて

2

それは、これまでの文字列を解析します。 parseDateは機能、ないparseDate.parseあるのでvar parseDate = d3.time.format("%b %Y").parse;

parseDate.parse is not a functionの文脈では

https://github.com/mbostock/d3/wiki/Time-Formatting#parse

は理にかなっています。あなたはparseDate('1/1/2016')のように呼びます。parseDate.parse('1/1/2016')

最後にparseを付ける必要はありません。 あなたは

var parseDate = d3.time.format("%b %Y")

、その後

parseDate.parse('1/1/2015)を行うことができます。

D3 docsの例。

var format = d3.time.format("%Y-%m-%d"); 
format.parse("2011-01-01"); // returns a Date 
format(new Date(2011, 0, 1)); // returns a string 

これにより、文字列を書式設定して解析することができます。最初の例では、解析することしかできません。

+0

これは正常に動作する方法を説明しています...しかし、私はなぜ著者のDIDが最後に解析を続けているのかを尋ねていましたが、タイプエラーは発生しませんでした。 – dwilbank

+0

なぜ型エラーが発生するのですか? –

+0

OKです。私が日付を解析していたときに.parseを2回目に呼び出すので、タイプエラーが発生しました。ありがとう – dwilbank

関連する問題