2016-07-06 61 views
1

我正在使用名爲horseman的npm模塊,它基本上是PhantomJS for Node。當我控制檯記錄騎士對象的內容時,它擁有關於當前頁面的各種數據。包括在所有這些數據是頁面的所有資源及其HTTP狀態代碼像這樣的列表:數組/對象混合是否有這樣的事情?

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

它看起來像一個數組/對象混合動力,我從來沒有遇到過這樣的事情。 Array.isArray(responses)收益率trueresponses.length轉過來與0

這是什麼東西?整個騎手對象這裏的

完全控制檯日誌:https://gist.github.com/tylertrotter/be8da3e777c16a2b631d9de9fc94f70b

+2

這是一個JavaScript問題或騎士問題?我會想象他們猴子修補.toString方法 – Trajanson

+0

你能否粘貼輸出:'console.log(responses)' – webdeb

+0

@webdeb我已經添加了整個對象。 「響應」從第29行開始。 – tylertrotter

回答

1

是否有這樣一個事情?不,數組是這個東西。

Array s只是JS中的一種特殊類型的對象(如RegExpDate實例),並且它們可以具有分配給它們的任意屬性。當然,for循環只會考慮其.length並迭代整數索引,但這並不妨礙對象包含任何內容。 console.log通常會以您發現的樣式顯示此類陣列。

但應該指出的是,濫用這樣的陣列,如is considered a very bad practise。您應該向模塊提交一個錯誤,並告訴他們使用對象的集合更好。

+0

好吧很酷,我不知道你可以濫用陣列這種方式。我會提交一個bug,看看他說了些什麼。 – tylertrotter

相關問題