博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript创建或填充任意长度的数组
阅读量:4118 次
发布时间:2019-05-25

本文共 1086 字,大约阅读时间需要 3 分钟。

直接填充法

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 ]

本文完〜

转载地址:http://yabpi.baihongyu.com/

你可能感兴趣的文章
PowerDesigner 12设置主键自增
查看>>
MyEclipse中写request.getParameter()就自动跳出问题的解决方案
查看>>
使用JDBC一次插入多个表、多条记录
查看>>
在 macOS 上安装 OpenCV
查看>>
virtualenv 虚拟环境安装与使用
查看>>
RNN的通俗讲解(初级篇)
查看>>
LeetCode 135:candy 题解 Python
查看>>
CUDA的cublas 和 Intel的MKL 矩阵运算对比
查看>>
单例的实现
查看>>
IOS常用宏定义
查看>>
iOS 错误 missing required architecture i386 in file
查看>>
Linux Shell 基本概念
查看>>
MAC cocoapods的安装和使用
查看>>
iOS 官方文档整理----UIView
查看>>
iOS设置颜色
查看>>
iOS 创建Cocoa touch Static Library 静态库(二进制库)和bundle
查看>>
iOS warning: directory not found for option
查看>>
iOS warning instance method **in category from ** overrides method from class in **
查看>>
git报错 unable to access 'https://****': SSL certificate problem: Invalid
查看>>
X-code6 关于模拟器突然不见了..
查看>>