2016-04-26 30 views
3

为什么这行javascript没有创建数组原型的实例? (我很感兴趣的变种是formatSet)本地数组变量不是数组

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]; 

原谅我,如果这是一个重复,但搜索条件是一个有点含糊,一切我发现说明了Array.prototype.isArray的() ,我对此很熟悉,但仍然没有回答这个问题。

此外,万一我失去了一些东西,出现的情况就是错误:formatSet.isArray and formatSet.forEach is not a function

+2

我不知道'IsArray的()'但是从位读它看起来不被广泛实施。如果我使用上面的代码,并将第一行更改为'var date = new Date(),那么formatSet是一个数组并且具有其他预期的可用函数(forEach,例如)。那么,在你运行那行代码之后,date变量是什么? – Archer

+0

好的 - 在改变之后,这也可以工作...... Array.isArray(formatSet);' - 返回true。 – Archer

回答

3

你需要做的:

Array.isArray(formatSet); 

相反的:

formatSet.isArray(); 
+1

Derp!谢谢您的帮助 – Kraken