• JS快速构建数组方法


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

    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该行内容

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

  • 相关阅读:
    python中break与continue区别
    jmeter正则表达式
    python的input()函数与getpass标准库
    python实例练习-01登录
    python数据类型-字符串
    jmeter操作mysql
    jmeter文件下载
    字符逆序
    求解立方根
    求最小公倍数
  • 原文地址:https://www.cnblogs.com/soyxiaobi/p/9815285.html
Copyright © 2020-2023  润新知