学习javaScript数据结构与算法之数组

1、创建和初始化数组

  •  使用new关键字    var daysOfWeek = new Array();
  • 使用括号[]            var daysOfWeek = [];
  • 使用 length 获取数组个数

2、访问元素和迭代数组

 访问数组中的特定位置的元素,可以使用中括号传递数值位置而得到想知道的值或者赋新的值。

3、添加元素

      var  numbers = [0,1,2,3,4,5,6,7,8,9];

      (3.1)添加元素:numbers[numbers.length] =10;

   注意!!!!!!

     在javascript中,数组是可以修改的对象。如果添加元素,它会自动增长。而j在ava和c等其它语言里,我们要决定数组的大小。

      (3.2)使用push方法

         push()方法能把元素添加到数组的末尾。通过push(),能添加任意个元素:

         numbers.push(11);

         numbers.push(12,13);

    code:

            var numbers = [0,1,2,3,4,5,6,7,8,9];

            numbers[numbers.length]=10;

            numbers.push(11);

           for(var i=0;i<numbers.length;i++){console.log(numbers[i])}

       结果:

          

         (3.3)插入元素到数组首位----unshift()方法

        传统做法:通过向右移动一个位置,腾出数组第一个元素位置然后赋值。

           for (var i=numbers.length; i>=0; i--){ numbers[i] = numbers[i-1]; } numbers[0] = -1;

       现在:使用unshift()                numbers.unshift(-2);

code:
    

   结果:

    

 4、删除元素  -

(4.1)----从数组末尾删除使用 pop()方法

(4.2)从数组首位删除元素使用 shift()方法

注意!!!!! 通过shift和unshift方法,能够用数组模拟基本的队列数据结构。

 通过pop和push能够模拟栈的数据结构。

(4.3)在任意位置添加或删除元素

       可以使用splice方法,简单地通过指定位置/索引,就可以删除相应位置和数量的元素。

       例如:numbers.splice(5,3);

       表示删除了从数组索引5开始的3个元素。

         对于numbers.splice(5,0,2,3,4);

       splice方法接收的第一个参数表示想要删除或插入的元素的索引值。第二个参数是删除元素的个数(这里0表示传入)。第三个参数往后,就是要添加到数组里的值。

     扩展:

      对于js数组和对象,我们还可以用delete操作符删除数组中的元素。然而数组某个位置的值会变成undefined。因此,始终使用splice、pop或shift等方法来删除数组元素。

5、数组合并

  concat ----连接2个或更多的数组,并返回结果(返回数组长度及数组)。concat方法可以向一个数组传递数组、对象或是元素。数组会按照该方法传入的参数顺序连接指定数组。

eg:

结果:

6、迭代器函数

       6.1 用every 方法迭代

       every方法会迭代数组中的每一个元素,直到返回false.该方法测试数组的所有元素是否都通过了指定函数的测试。

      语法: arr.every(callback[,thisArgs])---------------------->其中callback是指用来测试每个元素的函数

        every 不会改变原数组。

      6.2用some方法迭代

       some()方法测试数组中的某些元素是否通过了指定函数的测试点。some方法会迭代数组的每个元素,直到函数返回true.

     6.3用foreach方法

     迭代整个数组。

eg:     let   numbers=[1,2,3,4,5,6];

           numbers.forEach(function(x){

            console.log((x%2 == 0));

           });

      6.4 使用map和filter方法

     JavaScript还有两个会返回新数组的遍历方法。

     第一个是map: var myMap = numbers.map(isEven);

    数组myMap里的值是:[false, true, false, true, false, true, false, true, false, true, false, true, false, true, false]。它保存了传入map方法的isEven函 数的运行结果。这样就很容易知道一个元素是否是偶数。比如,myMap[0]是false,因为1不是 偶数;而myMap[1]是true,因为2是偶数。

     6.5    filter方法。

    它返回的新数组由使函数返回true的元素组成: var evenNumbers = numbers.filter(isEven); 在我们的例子里,evenNumbers数组中的元素都是偶数:[2, 4, 6, 8, 10, 12, 14]。

  6.6  使用reduce方法

    最后是reduce方法。reduce方法接收一个函数作为参数,这个函数有四个参数: previousValue、currentValue、index和array。这个函数会返回一个将被叠加到累加器的 值,reduce方法停止执行后会返回这个累加器。如果要对一个数组中的所有元素求和,这就很 有用,比如: numbers.reduce(function(previous, current, index){ return previous + current; }); 输出将会是120。

          

 

   

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值