直接填充法

const arr = [0,0,0];

Array 构造函数

var len = 3;
var arr = new Array(len);

Array 构造函数后面加上 fill() 方法

var len = 3;
var arr = new Array(len).fill(0);

如果你用对象作为参数去 fill() 一个数组,所有元素都会引用同一个实例(也就是这个对象没有被克隆多份,Array.from() 则没有这个问题):

var len = 3;
var obj = {};
var arr = new Array(len).fill(obj);

push() 方法

var len = 3;
var arr = [];
for (let i=0; i < len; i++) {
arr.push(0);
}

所以操作这个数组时应该比用构造函数创建的更快。不过创建数组的速度比较慢,因为引擎可能需要随着数组的增长多次重新分配连续的内存。

使用 undefined 填充数组

Array.from({length: 3})       // [ undefined, undefined, undefined ]

下面这种方式仅适用于可迭代的值,并且与 Array.from()具有类似的效果:

[...new Array(3)]             // [ undefined, undefined, undefined ]

使用 Array.from() 进行映射

如果提供映射函数作为其第二个参数,则可以使用 Array.from() 进行映射。

用值填充数组

Array.from({length: 3}, () => 0)        // [ 0, 0, 0 ]

使用唯一(非共享的)对象创建数组

Array.from({length: 3}, () => ({}))     // [ {}, {}, {} ]

用升序整数数列创建数组

Array.from({length: 3}, (x, i) => i)    // [ 0, 1, 2 ]

用任意范围的整数进行创建

var start = 2, end = 5;
Array.from({ length: end - start }, (x, i) => i + start) // [ 2, 3, 4 ]

另一种创建升序整数数组的方法使用 keys()

[...new Array(3).keys()]              // [ 0, 1, 2 ]

JavaScript创建或填充任意长度的数组的更多相关文章

  1. javascript创建一个基于数组的栈结构

    栈是一种遵从后进先出(LIFO)原则的有序集合.新添加或待删除的元素都保存在栈的同 一端,称作栈顶,另一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 栈拥有以下方法: push(eleme ...

  2. 求任意长度数组的最大值(整数类型)。利用params参数实现任意长度的改变。

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. JavaScript进阶 - 第3章 一起组团(数组)

    第3章 一起组团(数组) 3-1 一起组团(什么是数组) 我们知道变量用来存储数据,一个变量只能存储一个内容.假设你想存储10个人的姓名或者存储20个人的数学成绩,就需要10个或20个变量来存储,如果 ...

  4. JavaScript的json和Array及Array数组的使用方法

    1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...

  5. JavaScript(第七天)【对象和数组】

    什么是对象,其实就是一种类型,即引用类型.而对象的值就是引用类型的实例.在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起.它也常被称做为类,但ECMAScript中却没有这种 ...

  6. GNU C 中零长度的数组【转】

    原文链接:http://www.cnblogs.com/dolphin0520/p/3752492.html 在标准C和C++中,长度为0的数组是被禁止使用的.不过在GNU C中,存在一个非常奇怪的用 ...

  7. 用html5的canvas和JavaScript创建一个绘图程序

    本文将引导你使用canvas和JavaScript创建一个简单的绘图程序. 创建canvas元素 首先准备容器Canvas元素,接下来所有的事情都会在JavaScript里面. <canvas ...

  8. Queue插入的时候报错:源数组长度不足。请检查 srcIndex 和长度以及数组的下限。

    异常问题记录: 本想自己手动实现一个日志记录功能.使用Queue队列集合来实现多线程的日志记录. 测试 一个线程写入数据Enqueue和一个线程读取数据Dequeue ,直接用的无休眠死循环. 终于抛 ...

  9. C语言---递归反向输出任意长度的字符串

    (该字符串可以包含空格和回车!) [题目要求] 编写一个递归函数,实现将输入的任意长度的字符串反向输出的功能. 例如输入字符串:ABCD,输出字符串:DCBA. [题目分析] 应用递归的思想有时可以很 ...

  10. C# 在PDF中创建和填充域

    C# 在PDF中创建和填充域 众所周知,PDF文档通常是不能编辑和修改的.如果用户需要在PDF文档中签名或者填写其他内容时,就需要PDF文档中有可编辑的域.开发者也经常会遇到将数据以编程的方式填充到P ...

随机推荐

  1. 官宣!Dora-rs 官方中文教程正式发布!

    Dora-rs:是一个为现代AI机器人应用设计的.以数据流为核心的机器人开发框架 . 在机器人开发的世界里,我们常常面临这样的困境: 过于复杂: 传统软件栈学习曲线陡峭,配置繁琐,让快速原型验证成为奢 ...

  2. Steam流量规则和商业化策略

    https://www.gcores.com/talks/748514 以下内容转载,引用自罗斯基,侵删 ----------- Steam流量规则和商业化策略 时间:11月7号成都,罗斯基Steam ...

  3. .NETCore文件上传将文件保存到docker容器以外的文件夹

    最近在开发一个文件服务,用于公司内容各应用的文件保存和查询获取. 开发环境:windows10+.NET Core7.0+Mysql   发布环境 :Liunx+Docker 实现功能:文件服务提供接 ...

  4. ARC184 随便写点

    最逆天的一集. ARC184 A 题目解析 关键观察:注意到 \(m\) 很小,只有 \(10\),并且 \(q = 950\).考虑有什么性质. 我们发现 \(m\) 很小,我们考虑挖掘性质. 有一 ...

  5. ChatGPT 再遭禁用 | 人工智能时代下数据安全如何保障

    近日,三星电子宣布禁止员工使用流行的生成式AI工具,原因在于4月初三星内部发生的三起涉及 ChatGPT 误用造成的数据泄露事件.报道称,三星半导体设备测量资料.产品良率等内容或已被存入ChatGPT ...

  6. DockQuery | 成为信创产业“关键码”

    几年前,中美贸易冲突将信息技术产业带入大众视野,越来越多人从"芯片"出发,接触到硬件.软件.信息安全等概念.近年来,国家将信息基础设施建设列为重点工程,大力支持信创产业的发展.在技 ...

  7. CloudQuery v1.4.1 发布 | 开放「组织架构」模块 API

    Hello,社区的小伙伴们,CloudQuery v1.4.1 已发布! 本次更新,我们实现了呼声很高的 OpenAPI,具体来看一下吧~ 新增功能 一.开放「组织架构」API 「系统设置」中增加『开 ...

  8. H5 标签

    audio <audio> 标签定义声音,比如音乐或其他音频流. autoplay='autoplay' 如果出现该属性,则音频在就绪后马上播放. controls='controls' ...

  9. iptables服务详解

    安装iptables # 1. 关闭selinux,不关闭selinux,iptables不读取配置文件 sed -i 's#SELINUX=enforcing#SELINUX=disabled#' ...

  10. Vue vs React 多维度剖析: 哪一个更适合大型项目?

    Vue 和 React 作为前端开发框架中的两个扛把子,在日常的开发工作中我们需要频繁的与它们打交道.Vue 和 React 都是成熟的前端框架,都能胜任大型项目开发,但它们的设计理念.生态特点和适用 ...