2016-04-26 14 views
3

なぜこのJavaScriptの行は配列プロトタイプのインスタンスを作成していませんか? )(これが重複している場合ローカル配列変数が配列ではありません

var date = angular.copy(srcDate), 
    d = '', 
    yyyy = date.getFullYear() - 2, 
    MM = date.getMonth() + 1, 
    dd = date.getDate(), 
    hh = date.getHours(), 
    mm = date.getMinutes(), 
    ss = date.getSeconds(), 
    formatSet = [MM, dd, hh, mm, ss]; 

が私を許し(私は興味を持ってvarがformatSetある)が、検索語は少し漠然としていると私は発見だすべてがArray.prototype.isArrayの使用を示しこれは私がよく知っているが、依然として質問に答えない。

また、何か不足している場合は、発生するシナリオはエラー:formatSet.isArray and formatSet.forEach is not a functionです。

+2

私は 'でIsArrayを知らない()'それは広く実装されないように見えます読みのビットから。上記のコードを使用して、最初の行を 'var date = new Date() 'に変更すると、formatSetは配列であり、他の期待される関数が利用可能です(forEachなど)。だから、そのコード行を実行した後の日付変数は何ですか? – Archer

+0

オケイ - その変更後、これも機能します... 'Array.isArray(formatSet);' - trueを返します。 – Archer

答えて

3

あなたが実行する必要があります。

Array.isArray(formatSet); 

の代わりに:

if (formatSet.constructor === Array)

これは、次のとおりです。

formatSet.isArray(); 
+1

Derp!助けてくれてありがとう – Kraken

関連する問題