JavaScript数据结构与算法--数组(上)

数组

数组是数据结构中一个重要的知识点,几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构。
数组存储一系列同一种数据类型的值,虽然在JavaScript中,也可以在数组中保存不同的数据类型,但是我们一个尽量避免这么做,大多数语言都没有这种能力。
1.创建数组和初始化数组
在JavaScript中声明,创建和初始化数组特别简单,如下:

let st = new Array();
let st = [];
let st = [‘javascript’,’html’,’css’,’vue’];

2.对数组添加元素
(1)在数组末尾插入元素
①最直观的办法就是直接在数组下标length处直接赋值

    let st = ['你好','你在干啥?'];
    st[st.length] = '我很好';
    console.log(st) //["你好", "你在干啥?", "我很好"]

②使用push方法在数组末尾插入元素

    let st = [];
    st.push('你好'); 
    console.log(st);  //["你好"]
    st.push('我很好');
    console.log(st);  //["你好", "我很好"]

(2)在数组开头插入元素
①最直观的办法就是希望数组原有的元素都右移一位,把索引为0的那位空出来用于存放想要插入的元素,为了让所有的数组实例都能使用此方法,就直接在数组原型上面添加方法。

Array.prototype.insert = function(value){
        for(let i = this.length; i >= 0; i--){
          this[i] = this[i-1];
        }
        this[0] = value;
      }
      let st = new Array();
      st.insert(1);
      console.log(st); // [1]
      st.insert(5);
      console.log(st); // [5, 1]
      st.insert(10);
      console.log(st); // [10, 5, 1]

②使用unshift方法在数组开头插入元素

      let st = [2,3];
      st.unshift(4);
      console.log(st); // [4, 2, 3]
      st.unshift(6);
      console.log(st); // [6, 4, 2, 3]

3.对数组删除元素
(1)从数组开头删除元素
①最直观的办法是移除数组第一个元素,后面元素左移

   Array.prototype.removeFirst = function(){
        for(let i = 0; i < st.length; i++){
         this[i] = this[i + 1];
        }
        return this.reIndex(this);
      }
      
      Array.prototype.reIndex = function(myArray){
        let newst = [];
        for(let i = 0; i < myArray.length; i++){
          if(myArray[i] !== undefined){
            newst.push(myArray[i]);
          }
        }
        return newst;
      }
          let st = new Array(1,2,3,4);
          st = st.removeFirst();
          console.log(st); // [2, 3, 4]
          st = st.removeFirst();
          console.log(st); // [3, 4]

②使用shift方法在数组开头删除元素

          let st = [1,2,3,4];
          st.shift();
          console.log(st); // [2, 3, 4]
          st.shift();
          console.log(st); // [3, 4]

(2)从数组末尾删除元素 使用pop方法

     let st = [1,2,3,4];
     st.pop();
     console.log(st); // [1, 2, 3]

4.在数组任意位置添加或删除元素(splice方法)
利用JavaScript中数组的splice方法可以很简单的就对数组进行任意的添加或删除操作。
st.splice(3,2)表示删除从数组索引3开始的2个元素,上代码:

     let st = [1,2,3,4,5];
     st.splice(3,2);
     console.log(st)  // [1, 2, 3]

想从数组指定位置插入元素(st.splice(3,0,7,8,9))上代码:

let st = [1,2,3,4,5];
        st.splice(3,0,7,8,9);
        console.log(st); //[1, 2, 3, 7, 8, 9, 4, 5]

如果第二个参数不是0,就是会删除参数个元素后后面的参数在添加对应位置上,上代码:

        let st = [1,2,3,4,5];
        st.splice(3,2,7,8,9);
        console.log(st); //[1, 2, 3, 7, 8, 9]

5.二维和多维数组
(1)二维数组
JavaScript中只支持一维数组,并不支持矩阵(二维数组,或数组的数组),但是可以通过数组嵌套,实现矩阵或任一多维数组。上代码

        let st = [];
        st[0] = [];
        st[0][0] = 1;
        st[0][1] = 2;
        st[0][2] = 3;
        st[0][3] = 4;
       
        st[1] = [];
        st[1][0] = 6;
        st[1][1] = 7;
        st[1][2] = 8;
        st[1][3] = 9;
       console.table(st);

输出结果:
在这里插入图片描述

6.JavaScript中数组的一些常用方法
在JavaScript中,数组是经过改进的对象,这意味着创建的每个数组都有一些可用的方法。JavaScript中数组十分强大,并且相比于其他语言中的数组,JavaScript中的数组有许多很好用的方法。例如:
(1)concat 连接2个或更数组,并返回结果。
(2)every 对数组中的每个元素运行给定函数,如果该函数对每个元素都返回true,则返回true。
(3)filter 对数组中的每个元素运行给定函数,返回该函数会返回true的元素组成的数组。
(4)forEach 对数组中的每个元素运行给定函数。该方法没有返回值。
(5)join 将所有数组元素连接成一个字符串。
(6)indexOf 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1。
(7)lastIndexOf 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值。
(8)map 对数组中的每个元素运行给定函数,返回每次函数调用的结果组成的数组。
(9)reverse 颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在的第一个。
(10)slice 传入索引值,将数组里对应索引范围内的元素作为新数组返回。
(11)some 对数组中的每个元素运行给定函数,如果任一元素返回true,则返回true。
(12)sort 按照字母顺序对数组顺序,支持传入指定顺序方法的函数作为参数。
(13)toString 将数组作为字符串返回。
(14)valueOf 和toString类似,将数组作为字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值