Array.map似乎不适用于未初始化的数组

 firespace 发布于 2023-02-13 13:26

我正在尝试使用map函数在未初始化的数组上设置默认值,但它似乎不起作用,有关如何设置默认值的任何想法?

请考虑我在Chrome控制台中尝试过的代码段.

> var N = 10;
> var x = new Array(N);
> x
  [undefined x 10]

> x.map(function(i) { return 0;});
  [undefined x 10]

我期待数组被初始化为0.

2 个回答
  • 如果你想填充一个数组,你可以使用Array(5).fill(),然后这些方法将按预期工作 - 请参阅aasha7的备用相关答案.较早的预填方法包括:

    Array.apply(null, new Array(5)).map(function() { return 0; });
    // [ 0, 0, 0, 0, 0 ]
    

    在阅读了评论中链接的一篇帖子之后,我发现这也可以写成

    Array.apply(null, {length: 5}).map(function() { return 0; });
    

    但是,尝试使用.map未定义的值将无法正常工作.

    x = new Array(10);
    x.map(function() { console.log("hello"); });
    
    // so sad, no "hello"
    // [ , , , , , , , , ,  ]
    

    .map 将跳过未定义的值:(

    2023-02-13 13:29 回答
  • 我只想指出你现在可以这样做:

    Array(2).fill().map(_ => 4);
    

    这将返回[4, 4].

    2023-02-13 13:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有