2016-07-06 14 views
1

私はhorsemanと呼ばれるnpmモジュールを使用していますが、これは基本的にノードのPhantomJSです。馬のオブジェクトの内容をコンソールに記録すると、現在のページに関するあらゆる種類のデータがあります。このすべてのデータに含まれるこのようなページや彼らのHTTPステータスコードのすべてのリソースのリストです:配列/オブジェクトハイブリッドのようなものはありますか?

responses: [ 'http://tylertrotter.com/': 301, 
    'http://www.tylertrotter.com/': 200, 
    'http://www.tylertrotter.com/css/main.css': 200, 
    ... 
] 

それは、配列/オブジェクトのハイブリッドのように見えると私は前にこのような何かに遭遇したことがありません。 Array.isArray(responses)trueであるが、responses.length0となる。

これは何ですか?ここでは全体の騎手オブジェクトの

全コンソールログ:https://gist.github.com/tylertrotter/be8da3e777c16a2b631d9de9fc94f70b

+2

これはJavaScriptの質問ですか、馬の質問ですか?私は彼らが.toStringメソッドをモンキーパッチしたと思います。 – Trajanson

+0

'console.log(responses)'の出力を貼り付けてください。 – webdeb

+0

@webdebオブジェクト全体を追加しました。 '応答'は29行目から始まります。 – tylertrotter

答えて

1

は、このような事がありますか?いいえ、すべて配列はこの物です。

Arrayは、JS内の特殊タイプのオブジェクト(RegExpまたはDateインスタンスなど)であり、任意のプロパティを割り当てることができます。もちろん、forループはその.lengthを考慮し、整数インデックスを反復しますが、オブジェクトには何も格納されません。 console.logは通常、あなたが見つけたスタイルの配列を表示します。

ただし、このような乱用配列はis considered a very bad practiseであることに注意してください。モジュールにバグを報告し、オブジェクトを使用するように指示するのは、コレクションとしてさらに良いMapsです。

+0

うわー、私はあなたがこの方法で乱用する可能性があるかどうか分かりませんでした。私はバグを報告し、彼が言うことを見るでしょう。 – tylertrotter

関連する問題