2016-07-06 47 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

相关问题