一、常用(普通)数组的构建

1.1 直接构建

let arr = ['mock1', 'mock2', 'mock3']

1.2 通过new Array

let arr = newArray('mock1', 'mock2', 'mock3')

let arr1 = newArray();
arr1[0] = 'mock1'
arr1[1] = 'mock2'
... //array可设定长度,但对于map并没什么用,后面详细介绍
let arr1 = new Array(9)

二、特殊数组的构建

2.1 构建相同内容的数组

直接构建法:

简单粗暴不推荐,如果数据多,不仅构建麻烦,而且不美观

let arr = ['mock', 'mock', 'mock']

循环法: for循环

比第一种要好,但是代码依然不美观

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

fill: 使用一个固定值来填充数组

这种显然就方便又美观多了!

let newArr = new Array(3);
newArr.fill('mock')

2.1 构建顺序(倒序数组)

直接构建法:

数据多起来,10条、20条可要了亲命

let arr = ['mock1', 'mock2', 'mock3'...]

循环法: for循环

和2.1一样的道理

let arr = [];
for(var i = 0;i < 10;i++){
arr.push(`mock${i+1}`)
}

fill + map实现

这种显然就方便又美观多了!

let newArr = new Array(10).fill('').map( (item, index) => index+1);

console.log(newArr)

可以完美打印出[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

简单解释一下原理.

之所以要用fill结合map,因为new Array创建的空数组是无法map的.

比如new Array(3)创建的数组是[,,,],用map进行循环得不到任何结果.当然你说可以用for和length,我只是不太喜欢用for.map看起来更简洁舒服

所以我们新建了数组要向数组里真真切切填充一个(任何)数,因为到后面,其值还是会被map代替。

let arr = new Array(10).fill('任何数')

这时候就可以使用map方法了,然后通过每次return返回的值改变当前数组位置的值

arr.map( (item, index) => index+1 )

上面有几点要注意:

  1. map的时候,需要用的是序号值index,item(数组的值)对我们是没有意义的
  2. 当箭头函数的内容只有一行的时候,会自动return该行内容

总之,还是建议大家尽可能使用高质量、简洁的代码去构建项目.这样对性能也好,后面维护项目也好,都有很大的作用

JS快速构建数组方法的更多相关文章

  1. 转载: 我如何使用 Django + Vue.js 快速构建项目

    原文链接: https://www.ctolib.com/topics-109796.html 正文引用如下 引言 大U的技术课堂 的新年第一课,祝大家新的一年好好学习,天天向上:) 本篇将手把手教你 ...

  2. js中的数组方法

    数组的方法有数组原型方法,也有从object对象继承来的方法,这里我们只介绍数组的原型方法,数组原型方法主要有以下这些: join()push()和pop()shift() 和 unshift()so ...

  3. js中常用数组方法concat join push pop slice splice shift

    javascript给我们很多常用的 数组方法,极大方便了我们做程序.下面我们来介绍下常用的集中数组方法. 比如 concat() join() push() pop() unshift() shif ...

  4. js 快速生成数组的方法

    //实现方法一:循环赋值var arr1 = new Array(100);for(var i=0;i<arr1.length;i++){ arr1[i] = i;}console.log(ar ...

  5. js学习笔记——数组方法

    join() 把数组中所有元素转化为字符串并连接起来,并返回该字符串, var arr=[1,2,3]; var str=arr.join("#"); //str="1# ...

  6. 【笔记】JS中的数组方法

    push()方法:可以向数组的末尾添加一个或者多个元素,并且返回新的长度   pop()方法:可以删除数组最后一个元素,并且返回被删除的元素,注意:如果数组是空的,该方法不进行任何操作,返回undef ...

  7. js常用的数组方法

    1.创建数组的基本方法:  1.1 空数组  var obj=new Array();                 1.2 指定长度数组  var obj=new Array(size);     ...

  8. js快速去除数组重复项

    function unique1(arr) { var tmp = new Array(); tmp.push(arr[0]); for(var i=0;i<arr.length;i++) { ...

  9. 转载收藏(js数组方法大全)

    js数组方法大全 JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Arra ...

随机推荐

  1. Symfony2 UserSecurityEncoder实现自己的验证方式

    fosuserbundle默认使用sha512加密 如果要实现自己的加密方式 需要继承Symfony\Component\Security\Core\Encoder\BasePasswordEncod ...

  2. 大数据学习路线之linux系统基础搭建

    学习大数据是必须掌握一定Linux知识的,工欲善其事,必先利其器.在学习之前,首先需要搭建Linux系统,本节将讲解VMware Workstation的安装和CentOS 7系统的安装. 1.2.1 ...

  3. P5015 标题统计

    P5015 标题统计 ‘   ’ 不等于空格,空格是个字符 代码: #include<iostream> #include<cstdio> #include<cmath& ...

  4. Java编译报错:意外的类型

    先上代码 后续更新 public class IncidentType { public static void main(String[] args) { int a = 3; int b = ++ ...

  5. nginx location分析

  6. Golang框架beego电影网爬虫小试牛刀

    学习了一段时间golang,又参考课程学习了beego开发网站爬虫,项目的目录结构是: 采集的目标是豆瓣网电影,入口地址是:https://movie.douban.com/subject/19008 ...

  7. DGUT_FLY退役贴 && FunCfans毕业总结-竞赛篇

    严格来说我们飞跃队是去年ECFinal之后就退役的,只是这几个月有一堆事情在那,考研的考研,求职的求职,都把博客晾一边了.现在,总算能写点东西了. 我与ACM-ICPC的结缘,是从大一开学1个多月后开 ...

  8. P5290 [十二省联考2019]春节十二响(堆+启发式合并)

    P5290 [十二省联考2019]春节十二响 从特殊到一般 我们先看链的情况. 我们把点$1$左右的两条子链分别扔入堆里 每次取出两个堆的最大值,把答案累加上更大的那个(另一堆为空则直接加上去). 那 ...

  9. windows10 hyper-v安装配置centos6.8

    27.PNG 选择最小化安装,并在界面下方选中自定义额外的安装包 28.PNG 选择额外的安装包 29.PNG 选择额外的安装包 30.PNG 终于开始安装了 31.PNG 安装完毕,重启 32.PN ...

  10. node.js 初学(一)—— http fs 服务器/文件/post get

    node.js 初学 —— http fs 服务器/文件/post get 这个世界,从来不会给失败者颁奖! 了解 node.js (开源) node.js 是用来做后台开发的,但是现在大部分前端人员 ...