• JavaScript | 数组


    ————————————————————————————————————————————

    数组

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    数组结构

    • JavaScript的数组由索引和值组成

    • 索引即可以是正整数,也可以是其他类型,但其他类型索引不算在数组长度内

    • 当数组索引不连续时,又称为稀疏数组,但相比较连续数组来说,稀疏数组查找元素的速度较慢,未定义部分为undefined


    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    创建数组:两种形式

    • 数组字面量
    • 构造函数Array()创建数组

    遍历数组:三种形式

    • for循环遍历下标连续的数组
    • for-in遍历数组
    • forEach()构造函数遍历数组
     1 // 数组字面量的形式
     2 var arr1 = [];
     3 // 数组中可以存放所有的变量形式
     4 var arr2 = [1, 2.3, null, true, false, undefined, [1, 2, 3, 4], { x: 1, y: 2, z: 3 }];
     5 console.log(arr2);
     6 console.log(arr2[6][1]);
     7 console.log(arr2[7].y);
     8 // 打印数组长度
     9 console.log(arr2.length);
    10 // 引用内容来创建数组
    11 var num = 1;
    12 var arr3 = [num, num + 1, num * 2];
    13 console.log(arr3);
    14 // 省略数组中的某个元素,默认为undefined
    15 var arr4 = [1, , 3];
    16 console.log(arr4);
    17 
    18 // 通过构造函数的方式
    19 var arr5 = new Array;
    20 // 多个参数时定义的是数组的内容
    21 var arr6 = new Array(1, 2, 3);
    22 console.log(arr6);
    23 // 只传一个参数时定义的是数组的长度
    24 var arr7 = new Array(6);
    25 console.log(arr7);
    26 console.log(arr7.length);
    27 arr7[9] = '1';
    28 console.log(arr7);
    29 console.log(arr7.length);
    30 // 任何变量都可以作为索引值,但只有非负整数作为索引时长度才会变化
    31 var arr8 = new Array();
    32 arr8[2.3] = 'a';
    33 arr8[-2333] = 'b';
    34 arr8['c'] = 'b';
    35 // 通过for in取出元素以及元素的索引
    36 for (var i in arr8) {
    37     console.log(i + ":" + arr8[i]);
    38 }
    39 console.log(arr8);
    40 console.log(arr8.length);
    41 arr8[2] = 'd';
    42 console.log(arr8);
    43 console.log(arr8.length);
    44 // 压栈弹栈操作
    45 var arr9 = new Array(1, 2, 3);
    46 arr9.push(4, 5, 6, 7);
    47 console.log(arr9);
    48 console.log(arr9.length);
    49 arr9.pop();
    50 arr9.pop();
    51 console.log(arr9);
    52 console.log(arr9.length);
    53 // 在首部加入元素
    54 arr9.unshift(9, 10, 11, 12);
    55 console.log(arr9);
    56 // 首部弹出元素
    57 arr9.shift();
    58 console.log(arr9);
    59 // 删除元素,但删除后长度不变
    60 delete arr9[3];
    61 console.log(arr9);
    62 console.log(arr9.length);
    63 // 稀疏数组遍历
    64 var arr10 = [1, 2, 3];
    65 arr10[100] = 99;
    66 // for-in遍历集成下来的属性
    67 for (var i in arr10) {
    68     console.log(i);
    69 }
    70 // 在forEach()中定义函数体,
    71 arr10.forEach(Test);
    72 
    73 function Test(element, index, array) {
    74     console.log("array:" + array + " index:" + index + " element:" + element);
    75 }

    常用方法

     1 // 通过.map方法返回新函数,在map方法中调用Trans函数,对数组中的每一个元素进行替换操作
     2 var arr = ['abc', 'bcd', 'cde'];
     3 res = arr.map(Trans);
     4 
     5 function Trans(x) {
     6     return x.replace(/c/g, '!').toUpperCase();
     7 }
     8 console.log(res);
     9 
    10 // filter
    11 var arr = [1, 3, 4, 5, 6, 6, 123, 6547, null, undefined, ""];
    12 res = arr.filter(function(x) {
    13     return (x <= 10) && (x != null) && (x != "");
    14 })
    15 console.log(res);
    16 
    17 // reduce作为累加器,从左到右依次进行返回运算
    18 var arr = [1, 2, 3, 4, 5, 6, 7, 8];
    19 res = arr.reduce(function(a, b) {
    20     return a - b;
    21 })
    22 console.log(res);
    23 res = arr.reduce(function(a, b) {
    24     return a * b;
    25 })
    26 console.log(res);
    27 // reduceRight从右往左
    28 res = arr.reduceRight(function(a, b) {
    29     return a - b;
    30 })
    31 console.log(res);
    32 
    33 // every函数检测是否所有的元素都符合要求,有不符合的则返回false
    34 var age = [12, 34, 55, 4];
    35 res = age.every(function(x) {
    36     return x >= 18;
    37 })
    38 console.log(res);
    39 // some检测的是否有符合的,有符合的则返回true
    40 var age = [12, 34, 55, 4];
    41 res = age.some(function(x) {
    42     return x >= 18;
    43 })
    44 console.log(res);
    45 
    46 // 索引
    47 var arr = ['a','b','c','b','d','b','e'];
    48 // 第一个索引位
    49 res = arr.indexOf('b');
    50 console.log(res);
    51 // 最后一个索引位
    52 res = arr.lastIndexOf('b');
    53 console.log(res);
    54 // 索引开始位置
    55 res = arr.indexOf('b',3);
    56 console.log(res);

       

  • 相关阅读:
    vscode调整字体大小
    ML .NET 异常情况检测
    C#使用Elasticsearch(NEST)
    C#使用Elasticsearch获得原始查询(NEST)
    使用Lazy使ConcurrentDictionary的GetOrAdd方法线程安全
    XML转Json 设置指定节点为数组
    分支定界法
    对偶理论
    单纯形法
    连续变量的微分熵
  • 原文地址:https://www.cnblogs.com/hughdong/p/7197119.html
Copyright © 2020-2023  润新知