这很奇怪,但是我的新阵列似乎是一个对象......
var report = [];
console.log('Report type: ' + typeof report);
这会产生结果:Report type: object
,我已经在Chrome,Firefox和IE中确认了这一结果。
我还尝试使用var report = new Array()
和其他变体,例如var report = new Array('1', '2', '3')
。到目前为止,它们都产生了相同的结果。我觉得我又是一个新的JavaScript开发者......我在这里想念的是什么?
仅供参考,我的最终目标是将一些JSON数据转换为数组,以便我可以在Angular应用程序中使用ng-repeat过滤结果,因为过滤器显然不能处理对象。因此,如果您对此部分有答案,请随时分享。
答案 0 :(得分:2)
是的,您的代码是正确的,原因是因为数组不是本机类型,数组实际上是使用数字作为键的对象,
您可以通过使用instanceof而不是type:
来验证数组是否为数组[] instanceof Array
答案 1 :(得分:1)
情况一直如此。来自MDN:
//使用Array.isArray或Object.prototype.toString.call
//区分常规对象与数组
typeof [1,2,4] ==='object';
我对角度没有多大了解,但是数组总是typeof [] === 'object';
所以只需尝试使用它就像正常一样。
答案 2 :(得分:1)
由于typeof
数组为'object'
,因此内置了实用工具以检查
angular.isArray()
angular.isObject()
这些只是文档网站左上角始终可见的众多实用程序中的两个...花一些时间浏览整个文档网站