zoukankan      html  css  js  c++  java
  • javaScript 基础知识汇总(七)

    1、数组

      特点:数组是可以存储有序集合的对象。

      声明: let arr = new Array();

          let arr=[];

      大多数情况下我们使用第二种。

    1 let fruits = ["apple","orange","plum"];
    2 fruits[2]="Pear";//对数组的更改
    3 
    4 fruits[3]="Lemon"; 数组元素增加
    5 
    6 let arrLength = arr.lenght; //数组的长度

    多维数组 

    let matrix = [
      [1, 2, 3],
      [4, 5, 6],
      [7, 8, 9]
    ];
    alert(matrix[2,1]);//第三行第一个

    2、数组的方法

      JavaScript中的数组既可以看成栈也可以看成队列

      作为队列有以下两种方法:

      push  在末端添加一个元素

      shift 取出队列最前端的一个元素,整个队列往前移

      作为栈有以下两个方法

      push 在末端添加一个元素,

      pop 在末端取出一个元素

      JavaScript 中的数组既可以用作队列,也可以用作栈。它们允许从前端/末端来添加/删除元素。

      这在计算机科学中叫做端队列

      

     1 //JavaScript在数组末端有两种操作方法
     2 let arr = ["a"];
     3 alert(a.pop());//移除a并显示a
     4 
     5 arr.push("b");
     6 alert(arr);//b在数组末端添加元素
     7 
     8 
     9 //在数组前端也有两种方法。
    10 let arr = ["a","b"];
    11 alert(arr.shift());//移除a并显示a
    12 arr.unshift("c");//在数组的前端添加元素。
    13 
    14 在数组末端的操作比在数组前端的操作速度要快,因为在数组末端操作不需要更改数据其他位置的索引。

      

     

    splice

      删除数组元素,用delete删除,只能删除该元素的值,但是不能删除元素的索引。

      而splic 可以对数组进行添加、删除、和插入操作

      语法: arr.splic(index[,deleteCount,elem1,...,elemN])

      从index开始:删除deleteCount元素并在当前位置插入elem1,..,elemN。最后返回仪删除元素的数组。

      

     1 //删除
     2 let arr = ["I", "study", "JavaScript"];
     3 
     4 arr.splice(1, 1); // from index 1 remove 1 element
     5 
     6 alert( arr ); // ["I", "JavaScript"]
     7 
     8 //删除并替换
     9                                                                    
    10 let arr = ["I", "study", "JavaScript", "right", "now"];
    11 
    12 // remove 3 first elements and replace them with another
    13 arr.splice(0, 3, "Let's", "dance");
    14 
    15 alert( arr ) // now ["Let's", "dance", "right", "now"]
    16 
    17 //将 deleteCount 设置为 0,splice 方法就能够插入元素而不用删除:
    18 let arr = ["I", "study", "JavaScript"];
    19 
    20 // from index 2
    21 // delete 0
    22 // then insert "complex" and "language"
    23 arr.splice(2, 0, "complex", "language");
    24 
    25 alert( arr ); // "I", "study", "complex", "language", "JavaScript"

    slice

      语法:arr.slice(start,end)  赋值数组中的元素

    1 let str = "test";
    2 let arr = ["t", "e", "s", "t"];
    3 
    4 alert( str.slice(1, 3) ); // es
    5 alert( arr.slice(1, 3) ); // e,s
    6 
    7 alert( str.slice(-2) ); // st
    8 alert( arr.slice(-2) ); // s,t

    concat

      语法:arr.concat(arg1, arg2...)

    1 let arr = [1,2]
    2 
    3 alert(arr.concat([3,4]));//1,2,3,4

    查询数组

      indexOf/lastIndexOf和includes

      这些方法和字符串的一样。

      arr.indexOf(item,from)  从索引from 查询item  ,如果找到返回索引,否则返回-1;

      arr.lastIndexOf(item,from)  从尾部开始查询

      arr.includes(item,from)  从索引from 查询iitem 如果找到返回true;

    let arr = [1,0,false];
    
    alert(arr.indexOf(0));//1
    alert(arr.indexOf(false));//2
    alert(arr.indexOf(null));//-1
    alert(arr.includes(1));//true
    
    在这里用的是 === 比较所以如果查询的false ,会精确必须是false,而不是零

    find和findIndex

      语法:let result = arr.find(function(item,index,array){});

       let users =[

        {id:1,name:"john"},

        {id:2,name:"Pete"},

        {id:3,name:"Mary"}

      ];

      let user = users.find(item=>item.id==1);

      alert(user.name);//John

      filter

      和find 类似,但是该方法可以返回多个要素

      语法:let result = arr.filter(function(item,index,array){});

      let someUsers = users.filter(item=>item.id<3);

      alert(someUsers.length);//2

    数组转换

      map

      语法: let result = arr.map(function,index,array){});

      对数组中的每一个元素进行判断,最终返回符合结果的数组。

    1 let lengths = ["Bilbo", "Gandalf", "Nazgul"].map(item => item.length)
    2 alert(lengths); // 5,7,6

    soft

      此方法默认是按照字符串排序的,如果不传参数,返回值不一定是自己想要的

      比较函数可以返回任何数字

    1                      
    2 let arr = [ 1, 2, 15 ];
    3 
    4 arr.sort(function(a, b) { return a - b; });
    5 
    6 alert(arr);  // 1, 2, 15

      更短的代码

    1 rr.sort( (a, b) => a - b );

    reverse

      颠倒数组中元素的顺序

    1 let arr = [1, 2, 3, 4, 5];
    2 arr.reverse();
    3 
    4 alert( arr ); // 5,4,3,2,1

    split 和join

      分割和合并元素

      

     1 //逗号分割
     2 let names = 'Bilbo, Gandalf, Nazgul';
     3 
     4 let arr = names.split(', ');
     5 
     6 for (let name of arr) {
     7   alert( `A message to ${name}.` ); // A message to Bilbo  (and other names)
     8 }
     9 //将一个数组用“;”连接成字符串
    10 let arr = ['Bilbo', 'Gandalf', 'Nazgul'];
    11 
    12 let str = arr.join(';');
    13 
    14 alert( str ); // Bilbo;Gandalf;Nazgul

    reduce 和reduceRight

      语法:let value = arr.reduce(function(previousValue, item, index, arr) {
            // ...
         }, initial);

      previousValue — 是前一个函数调用的结果,第一次调用是初始化。

    1 let arr = [1, 2, 3, 4, 5];
    2 
    3 let result = arr.reduce((sum, current) => sum + current, 0);
    4 
    5 alert(result); // 15

      如果不初始化初始值则默认使用第一个元素作为初始值 

    1 let arr = [1, 2, 3, 4, 5];
    2 
    3 // 删除初始值
    4 let result = arr.reduce((sum, current) => sum + current);
    5 
    6 alert( result ); // 15

      arr.reduceRight 也一样,但是遍历是从右到左。

    迭代:forEach

      语法:arr.forEach(function(item, index, array) {
            // ... do something with item
          });

        

    // 为每个元素调用 alert
    1
    ["Bilbo", "Gandalf", "Nazgul"].forEach(alert);

      

  • 相关阅读:
    第二十四篇 玩转数据结构——队列(Queue)
    第二十三篇 玩转数据结构——栈(Stack)
    第二十二篇 玩转数据结构——构建动态数组
    第二十一篇 Linux中的环境变量简单介绍
    第二十篇 Linux条件测试语句相关知识点介绍
    第十九篇 vim编辑器的使用技巧
    第十八篇 Linux环境下常用软件安装和使用指南
    第十六篇 nginx主配置文件参数解释
    RAID磁盘阵列是什么(一看就懂)
    如何删除顽固文件或文件夹?
  • 原文地址:https://www.cnblogs.com/xiaoqiyaozou/p/11463175.html
Copyright © 2011-2022 走看看