JavaScript创建或填充任意长度的数组
直接填充法
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创建或填充任意长度的数组的更多相关文章
- javascript创建一个基于数组的栈结构
栈是一种遵从后进先出(LIFO)原则的有序集合.新添加或待删除的元素都保存在栈的同 一端,称作栈顶,另一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 栈拥有以下方法: push(eleme ...
- 求任意长度数组的最大值(整数类型)。利用params参数实现任意长度的改变。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- JavaScript进阶 - 第3章 一起组团(数组)
第3章 一起组团(数组) 3-1 一起组团(什么是数组) 我们知道变量用来存储数据,一个变量只能存储一个内容.假设你想存储10个人的姓名或者存储20个人的数学成绩,就需要10个或20个变量来存储,如果 ...
- JavaScript的json和Array及Array数组的使用方法
1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...
- JavaScript(第七天)【对象和数组】
什么是对象,其实就是一种类型,即引用类型.而对象的值就是引用类型的实例.在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起.它也常被称做为类,但ECMAScript中却没有这种 ...
- GNU C 中零长度的数组【转】
原文链接:http://www.cnblogs.com/dolphin0520/p/3752492.html 在标准C和C++中,长度为0的数组是被禁止使用的.不过在GNU C中,存在一个非常奇怪的用 ...
- 用html5的canvas和JavaScript创建一个绘图程序
本文将引导你使用canvas和JavaScript创建一个简单的绘图程序. 创建canvas元素 首先准备容器Canvas元素,接下来所有的事情都会在JavaScript里面. <canvas ...
- Queue插入的时候报错:源数组长度不足。请检查 srcIndex 和长度以及数组的下限。
异常问题记录: 本想自己手动实现一个日志记录功能.使用Queue队列集合来实现多线程的日志记录. 测试 一个线程写入数据Enqueue和一个线程读取数据Dequeue ,直接用的无休眠死循环. 终于抛 ...
- C语言---递归反向输出任意长度的字符串
(该字符串可以包含空格和回车!) [题目要求] 编写一个递归函数,实现将输入的任意长度的字符串反向输出的功能. 例如输入字符串:ABCD,输出字符串:DCBA. [题目分析] 应用递归的思想有时可以很 ...
- C# 在PDF中创建和填充域
C# 在PDF中创建和填充域 众所周知,PDF文档通常是不能编辑和修改的.如果用户需要在PDF文档中签名或者填写其他内容时,就需要PDF文档中有可编辑的域.开发者也经常会遇到将数据以编程的方式填充到P ...
随机推荐
- 官宣!Dora-rs 官方中文教程正式发布!
Dora-rs:是一个为现代AI机器人应用设计的.以数据流为核心的机器人开发框架 . 在机器人开发的世界里,我们常常面临这样的困境: 过于复杂: 传统软件栈学习曲线陡峭,配置繁琐,让快速原型验证成为奢 ...
- Steam流量规则和商业化策略
https://www.gcores.com/talks/748514 以下内容转载,引用自罗斯基,侵删 ----------- Steam流量规则和商业化策略 时间:11月7号成都,罗斯基Steam ...
- .NETCore文件上传将文件保存到docker容器以外的文件夹
最近在开发一个文件服务,用于公司内容各应用的文件保存和查询获取. 开发环境:windows10+.NET Core7.0+Mysql 发布环境 :Liunx+Docker 实现功能:文件服务提供接 ...
- ARC184 随便写点
最逆天的一集. ARC184 A 题目解析 关键观察:注意到 \(m\) 很小,只有 \(10\),并且 \(q = 950\).考虑有什么性质. 我们发现 \(m\) 很小,我们考虑挖掘性质. 有一 ...
- ChatGPT 再遭禁用 | 人工智能时代下数据安全如何保障
近日,三星电子宣布禁止员工使用流行的生成式AI工具,原因在于4月初三星内部发生的三起涉及 ChatGPT 误用造成的数据泄露事件.报道称,三星半导体设备测量资料.产品良率等内容或已被存入ChatGPT ...
- DockQuery | 成为信创产业“关键码”
几年前,中美贸易冲突将信息技术产业带入大众视野,越来越多人从"芯片"出发,接触到硬件.软件.信息安全等概念.近年来,国家将信息基础设施建设列为重点工程,大力支持信创产业的发展.在技 ...
- CloudQuery v1.4.1 发布 | 开放「组织架构」模块 API
Hello,社区的小伙伴们,CloudQuery v1.4.1 已发布! 本次更新,我们实现了呼声很高的 OpenAPI,具体来看一下吧~ 新增功能 一.开放「组织架构」API 「系统设置」中增加『开 ...
- H5 标签
audio <audio> 标签定义声音,比如音乐或其他音频流. autoplay='autoplay' 如果出现该属性,则音频在就绪后马上播放. controls='controls' ...
- iptables服务详解
安装iptables # 1. 关闭selinux,不关闭selinux,iptables不读取配置文件 sed -i 's#SELINUX=enforcing#SELINUX=disabled#' ...
- Vue vs React 多维度剖析: 哪一个更适合大型项目?
Vue 和 React 作为前端开发框架中的两个扛把子,在日常的开发工作中我们需要频繁的与它们打交道.Vue 和 React 都是成熟的前端框架,都能胜任大型项目开发,但它们的设计理念.生态特点和适用 ...