为什么我不能迭代这个数组?

时间:2014-11-24 01:59:19

标签: javascript arrays

我是JavaScript新手,我不知道此代码没有输出的原因。

function printArray(a) {
    for (var key in a) {
        console.log(a[key]);
    }
}
var a = new Array(10);
printArray(a);

有问题吗?

1 个答案:

答案 0 :(得分:4)

空插槽数组中没有可枚举的属性。此外,您几乎不想使用for ( in )循环来遍历数组的索引。

您应该使用常规for循环或Array.prototype.forEach()(如果数组当然有值)。

function printArray(a) {
    for (var i = 0; i < a.length; i++) {
        console.log(a[i]);
    }
}
// or
function printArray(a) {
    a.forEach(function(i) {
        console.log(i);
    });
}

请注意,您的所有目标平台都不支持Array.prototype.forEach()