创建0-100的数组

传统法

1.先创建长度为100的数组,然后循环赋值

let arr = new Array(100);
for(let i = 0;i< arr.length;i++){
  arr[i] = i;
}
  1. 先创建一个空数组,依次push进去数值。
let arr = [];
for(let i = 0;i < 100;i++){
  arr.push(i);
}

Arry.from()

Array.from()方法从一个类似数组或可迭代对象中创建一个新的数组实例。

  • 伪数组对象:
    拥有一个length属性和若干索引属性的任意对象。
    注意:string、数组也是对象,也符合。
  • 可迭代对象
    可以获取对象中的元素,如Map 和Set 等。

Array.from({length: 100}) 创建的结果是 [undefined,...,undefined]。

let arr = Object.keys(Array.from({length: 100}));

Array.from(arrayLike, mapFn, thisArg)可以利用map函数。

let arr = Array.from({length:100},(v,i) => i)

apply()

apply()方法调用一个函数,其具有一个指定的值,以及作为一个数组(或类似数组的对象)提供的参数。

let arr = Object.keys(Array.apply(null,{length:100}));

如何理解?

function fn(){
  console.log(arguments);
}
fn.apply(null,{length:2});

当通过apply()调用fn时,{length:2}会转换成数组形式的参数[undefined,undefined]。
Array实际上也是一个函数,Array.apply(null,{length:100})可以看做是Array([undefined,...,undefined])

数组实例方法keys()

keys()是ES6中新增的对键名的遍历,返回一个遍历器对象

let arr = Array.from(new Array(100).keys())

解构赋值

... 将一个数组转为用逗号分割的参数序列。

let arr = [...Array(100).keys()]
let arr = [...Array.from({length:100}).keys()]

不管是Array(100)还是Array.from({length:100}),keys()方法都能够获取到遍历器对象。


compare.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 早上好!#幸福实修#~每天进步1%#幸福实修10班@吕敏一富阳 20170810(11/30) 【幸福三朵玫瑰】 ...
    嘟嘟妈妈2727阅读 1,616评论 1 1
  • 满是繁华寂雨夜,烟花落寞影如戏。青屋弄堂看尽情仇爱恨,夕阳晚月演绎你绝笔。 璀璨、短暂如烟花般生命中,期盼寻找可以...
    lllv521阅读 4,857评论 4 5
  • 古 帝都 扬沙土 染血轮墓 看残旗战鼓 忆铁马山河苦 ...
    读骨丶阅读 1,198评论 0 0
  • 从小到大,我生病的次数绝不是双手双脚能数的过来的,特别是着凉发烧,现在成年了还至少一年一次呢。小时候就更不用说了,...
    玖歌不是哥阅读 2,481评论 7 3
  • 每个初生的孩子如同一张白纸,而我们就像调色板,我们填充了什么颜色,孩子就是什么样子。 我家二宝属于牛脾气类型,年龄...
    木有青枝阅读 3,940评论 3 10

友情链接更多精彩内容