• JS:数组类型及常用的方法使用


     

    目录

    01 如何定义?

    02 常用方法使用

    2.1 重要方法

    2.2 较为重要方法 


    01 如何定义?

     

    JS的数组类型和python的列表有很多相似的地方,可以联想记忆。

     

    let num = [1, '你好', 1.2]  // 存储的元素可以是不同的数据类型

     

    02 常用方法使用

    2.1 重要方法

     

    length方法 ==> 返回数组的长度

    1. let num = [1, 2, 3, 4] // 定义数组num
    2. num_len = num.length // 数组num中有4个元素, 所以num_len值为4
    3. // 注意, 不需要加上括号, 即num.length()是不需要的

     

    push(value)方法 ==> 数组末端添加元素value

    1. let num = [1, 2, 3]
    2. num.push(4) // 数组num更新为[1, 2, 3, 4]

     

    pop(index)方法 ==> 删除数组索引为index的元素并将该元素值返回 ,不传参默认删除数组末端元素并将该元素值返回。

    1. let num = ['q', 'w', 'e', 'r']
    2. num_pop1 = num.pop(2) // 删除数组中索引为2的元素(即字符'e'), 数组更新为['q', 'w', 'r']
    3. // 函数返回被删除的元素, 所以num_pop1 = 'e'
    4. num_pop2 = num.pop() // 删除数组中末端的最后一个元素(即字符'r'), 数组更新为['q', 'w']
    5. // 函数返回被删除的元素, 所以num_pop2 = 'r'

     

     unshift(value)方法 ==> 在数组开头添加value并返回添加之后新数组的元素个数(即数组.length)

    1. let num = [1, 2, 3, 4]
    2. num_len = num.unshift(123) // 在数组开头添加元素123, 数组更新为[123, 1, 2, 3, 4]
    3. // 由于新的数组长度为5, 所以函数返回值为5, 所以num_len = 5

     

    shift()方法 ==>  删除数组开头的第一个元素并返回删除之后新数组的元素个数(就数组.length)

    1. let num = [1, 2, 3, 4]
    2. num_len = num.shift() // 删除数组开头的第一个元素(即1), 所以删除之后的数组为[2, 3, 4]
    3. // 删除之后的数组长度为3, 所以num_len = 3

     

     slice()方法 ==> 切片

    1. let num = [1, 2, 3, 4, 5]
    2. num_slice = num.slice(1, 4) // 取索引范围为[1:3]的数组, 所以num_slice = [2, 3, 4]
    3. // 注意, 原数组不会发生改变, 即还是[1, 2, 3, 4, 5]
    4. // 该函数只有start和end,没有步长,支持负数切片
    5. num_slice1 = num.slice(0, -1) // 取索引范围为[0, 3]的数组, 所以num_slice1 = [1, 2, 3, 4]

     

     reverse()方法 ==> 逆序返回数组

    1. let num = ['q', 1, 'w', 2]
    2. num_reverse = num.reverse() // 将num数组重新排列, 逆序(从后往前), 并将排列好的数组返回
    3. // 返回的数组num_reverse = [2, 'w', 1, 'q']。 注意, 原数组也是这个

     

    join(link)方法 ==> 连接字符串, 子字符串之间的连接字符为link

    1. let num = ['q', 111, 'www', 34.45] // 注意, 并没有数组内所有元素必须是字符串(和python不一样)
    2. num_link = num.join('***') // 用'***'作为连接字符串,去连接数组内各个元素
    3. // num_link = 'q***111***www***34.45'
    4. // 注意, 原数组没有发生变化, 依旧是['q', 111, 'www', 34.45]

    concat()方法 ==> 将数组相加,或者说将两个数组连接在一起变成一个更长的数组

    1. let num1 = [1, 2, 3]
    2. let num2 = ['q', '2', 111.111]
    3. num_concat = num1.concat(num2) // 将两个数组连接在一起,并将该组合的新数组返回
    4. // 所以新数组num_concat = [1, 2, 3, 'q', '2', 111.111]
    5. // 原数组num1, num2均没有改动

      sort()方法 ==> 将数组进行排序

    1. let num = [4, 3, 2, 1]
    2. num_sort = num.sort() // 返回升序排列的数组, 并且原数组num也是经过升序排列的数组

    2.2 较为重要方法 

    三个比较重要的方法

    forEach()方法 ==> 类似于python的map()

    不过多讲解,直接放代码。

    1. let num = [111, 222, 333, 444, 555]
    2. undefined
    3. num.forEach(function(num_i){console.log(num_i ** 2)}, num) // 返回元素平方
    4. VM3207:1 12321
    5. VM3207:1 49284
    6. VM3207:1 110889
    7. VM3207:1 197136
    8. VM3207:1 308025
    9. undefined
    10. num.forEach(function(num_i, index){console.log(num_i, index)}, num) // 返回元素值及其索引
    11. VM3371:1 111 0
    12. VM3371:1 222 1
    13. VM3371:1 333 2
    14. VM3371:1 444 3
    15. VM3371:1 555 4
    16. undefined
    17. num.forEach(function(num_i, index, n){console.log(num_i, index, n)}, num) // 返回元素值及其索引以及元素所在的数组
    18. VM3621:1 111 0 (5) [111, 222, 333, 444, 555]
    19. VM3621:1 222 1 (5) [111, 222, 333, 444, 555]
    20. VM3621:1 333 2 (5) [111, 222, 333, 444, 555]
    21. VM3621:1 444 3 (5) [111, 222, 333, 444, 555]0: 1111: 2222: 3333: 4444: 555length: 5[[Prototype]]: Array(0)
    22. VM3621:1 555 4 (5) [111, 222, 333, 444, 555]
    23. undefined

    splice()方法 ==> 删除指定范围数组,添加数组

    1. let num = [1, 2, 3, 4, 5]
    2. undefined
    3. num.splice(1, 3) // 从索引1(包括)开始, 往后删除三个元素, 并将删除的元素以数组形式返回
    4. (3) [2, 3, 4]
    5. num // 删除的元素是2, 3, 4 所以剩下1, 5两个元素
    6. (2) [1, 5]
    7. let num = [11, 22, 33, 44, 55]
    8. undefined
    9. num.splice(2, 2, 666) // 从索引2开始, 往后删除2个元素, 并将删除的元素以数组的形式返回
    10. (2) [33, 44]
    11. num // 我们上面的splice()还传入了第三个参数:666, 表示在索引为2的位置添加该参数
    12. (4) [11, 22, 666, 55]
    13. let num = [1, 2, 3, 4, 5]
    14. undefined
    15. num.splice(1, 2, [111, 222, 333]) // 从索引1开始, 往后删除2个元素, 并将删除的元素以数组形式返回
    16. (2) [2, 3]
    17. num // 这里我们的splice()传入的第三个参数稍微有点不一样, 就是我们传入的是一个数组, 但是还是一样的效果, 就是将数组中索引为1的位置添加该参数, 只不过原来是添加一个数, 现在是添加一整个数组而已
    18. (4) [1, Array(3), 4, 5]

    map()方法 ==> 和前面的forEach()方法类似,大同小异

    炒茄子

  • 相关阅读:
    OpenCvSharp从入门到实践-(06)创建图像
    1.NVIDIA Deepstream开发指南中文版--欢迎使用 DeepStream 文档
    android 校验字符串是否蓝牙地址的方法
    TypeScript手写+项目实际
    深入理解Redis 数据结构—字典
    一云七芯!ZStack 祝贺上海市金融信创联合攻关基地荣获一等奖
    每天一个知识点 - 如何快速熟悉后端项目
    Excel文件的操作
    基于小程序实现的惠农小店系统设计与开发
    游戏初步——发牌程序(控制台版)以及一些扩展(python)
  • 原文地址:https://blog.csdn.net/m0_63001937/article/details/126650972