zoukankan      html  css  js  c++  java
  • js高级教程 第五章-引用类型(中)

    栈方法

    • 基本知识
      • 栈中的插入: 推入
      • 栈中的删除: 弹出
      • 都只发生在栈顶

    1.push()与pop()
    push():接收任意数量的参数,然后添加到数组末尾,并且返回修改数组长度
    pop():从数组末尾移除最后一项,减少数组的length值,然后返回移除的项

    push()返回的是数字类型,即数组的某一项,而pop()返回的是数组的具体值

    实例:

    var color = new Array();
    var count = color.push("red","blue");
    alert(count);  //2
    
    count = color.push("black");
    alert(count);  //3
    
    var count2 = color.pop(); // 移除最后一项
    alert(count2);  //black
    alert(color.length);  //2

    js中有趣的地方在于,数组是动态的,除了默认的push(),可以直接采用给数组某项赋值来添加新数组

    实例:

    var color = ["red","blue"];
    color.push("black");  //此时color[2] = black
    color[3] = "yellow";  //此时color[3] = yellow

    PS:以上的方式是采用数组的栈方法(先进后出)

    队列方法

    前面我们知道push和pop都是操纵的栈顶数据,在队列中就是队尾的数据,那么如果要使用队列的方式,在使用push操纵数组添加最后一项,同时可以使用shift()操纵队列的第一项进行删除操作。当然shift也是会返回该项,并且是数组-1.

    实例:

    var color = new Array();
    color.push('red','blue');  //color[0]=red,color[1]=blue
    color.push('black'); //color[0]=red,color[1]=blue,color[2]=black
    
    color.shift(); //删除了color[0]=red,并且返回该项(可以使用alert显示出来)使数组-1
    
    color.length();  //2

    非常happy的是,js提供了unshift()这个方法,顾名思义咯,它可以和pop()组成一个反向的队列。当然方向也是反的。

    var color = new Array();
    color.unshift('red','blue');  //color[0]=red,color[1]=blue
    color.unshift('black'); //color[2]=blue,color[1]=red,color[0]=black

    重排序法

    js提供的重排序法
    - reverse():颠倒
    - sort()

    实例:

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

    and then 关于sort方法,默认情况下是升序排列,有趣的是,sort方法不是比较数值大小而是比较字符串,sort方法会把每项数组转化为toString的字符串。

    实例:

    var num = [0,1,5,10,15];
    num.sort();
    alert(num); //0,1,10,15,5

    因为不是按照数值比较,而是字符串比较,所以5在10和15的后面。

    为了解决这个问题,通常在sort中回传入一个比较函数(也只能传如函数)

    实例:

    function compare(a,b){
      if(a>b){
        return 1;    //把大的放后面
      }else if(a<b){
        return -1;   //把小的放前面
      }else{
        return 0;    //相等位置不变
      }
    }
    
    var num = [0,1,5,10,15];
    num.sort(compare);
    alert(num);  //0,1,5,10,15

    操作方法

    js为数组的操纵提供了很多的方法,下面我们来介绍一些常见的

    1. concat()
      该方法的作用是基于原数组生成副本,并根据传来的参数生成新数组。如果参数是非数组,就简单的追加在副本后面,如果参数是另一个数组,就集体添加在副本后面。
      实例:
    var color = ['red','blue'];
    var colors = color.concat('yellow',[1,2]);
    alert(colors);  //red,blue,yellow,1,2

    slice(切片的意思)函数是参数非常有意思的函数,slice可以接收最多两个参数,如果接收一个参数是指从该参数(数组下标)到数组结尾切片,如果是两个,从该参数(数组下标)到另一个参数(明面项数)切片。

    实例:

    var color = ['red','blue','black','yellow','orange','pick'];
    var colors = color.slice(1); //从第一项都最后一项
    var colors2 = color.slice(1,4); //从第一项都第四项(这个四不是数组下标的4,而是第四个)
    
    alert(colors); //blue,black,yellow,orange,pick
    alert(colors2); // blue,black,yellow
    
  • 相关阅读:
    html JS 打开本地程序及文件
    [转]jquery mobile中redirect重定向问题
    kafka中broker、producer、consumer主要配置参数说明
    手写一个LruCache
    ES发布时max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 错误
    UML类图
    JVM调优总结
    JVM学习系列(五) 常见的JVM参数
    JVM学习系列(四) 相关概念
    JVM学习系列(三) 虚拟机监控相关
  • 原文地址:https://www.cnblogs.com/comefuture/p/8305958.html
Copyright © 2011-2022 走看看