数组构造函数不按预期工作

这个问题在这里已经有了答案:

  • 数组(len)初始值设定项4中未定义的值将回答

  • 从MDN: this returns a new JavaScript array with length set to that number

    new Array(n)创建的new Array(n)没有任何元素,只有长度。 这就是为什么你不能映射(不存在)的元素。


    map跳过未定义的元素,通过设计。

    从文档:

    仅对已分配值的数组索引调用callback

    这里有很多与这个主题有关的问题,并提供了创建映射将对所有元素进行操作的数组的方法,例如

    new Array(3) . fill() . map(...
    

    仅举一个例子,使用新的Array#填充方法。


    除了CodeiSirs答案之外的一个例子:

    // foo and bar are identical. They are arrays with length 3 and no indices.
    var foo = new Array(3);
    var bar = [];
    bar.length = 3;
    
    console.log(foo);
    console.log(bar);
    
    // This is different. It has 3 indices with the value undefined.
    var pez = [undefined, undefined, undefined];
    console.log(pez);
    链接地址: http://www.djcxy.com/p/89705.html

    上一篇: Array constructor not working as expected

    下一篇: How to know when a Retrofit call is finished