Javascript 数组对象Array

javascript中的数组是动态的,即长度是可以发生变化的。

  • 创建数组对象
    创建一个数组对象 
    创建数组对象的3种方式: 
    1. new Array() 创建长度是0的数组 
    2. new Array(5); 创建长度是5的数组,,但是其每一个元素都是undefine 
    3. new Array(3,1,4,1,5,9,2,6); 根据参数创建数组
    <script>
    function p(s,v){
      document.write(s+' '+v);
      document.write("<br>");
    }
     
    var x = new Array(); //创建长度是0的数组
    p('通过 new Array()创建一个空数组:',x);
    x = new Array(5); //创建长度是5的数组,,但是其每一个元素都是undefine
    p('通过 new Array(5)创建一个长度是5的数组:',x);
    p('像new Array(5) 这样没有赋初值的方式创建的数组,每个元素的值都是:',x[0]);
    x = new Array(3,1,4,1,5,9,2,6); //根据参数创建数组
    p('创建有初值的数组new Array(3,1,4,1,5,9,2,6) :',x);
     
    </script>
  • 数组长度
    属性length 获取一个数组的长度
    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
     
    var x = new Array(3,1,4,1,5,9,2,6); //根据参数创建数组
    p('当前数组是:'+x);
    p('通过.length获取当前数组的长度:'+x.length);
     
    </script>
  • 遍历一个数组
    遍历有两种方式
    1.结合for循环,通过下标遍历
    2.使用增强for in循环遍历
    需要注意的是,在增强for in中,i是下标的意思。 
    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
     
    var x = new Array(3,1,4);
    p('当前数组是:'+x);
    p("使用普通的for循环遍历数组");
    for(i=0;i<x.length;i++){  //普通for循环
      p(x[i]);
    }
    p("使用增强for循环遍历数组");
    for(i in x){  //for in 循环
      p(x[i]);
    }
    </script>
  • 连接数组
    方法 concat 连接两个数组
    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
    var x = new Array(3,1,4);
    var y = new Array(1,5,9,2,6);
    p('数组x是:'+x);
    p('数组y是:'+y);
     
    var z = x.concat(y);
    p('使用concat连接数组x和y');
    p('数组z是:'+z);
     
    </script>
  • 通过指定分隔符,返回一个数组的字符串表达
    方法 join 通过指定分隔符,返回一个数组的字符串表达
    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
     
    var x = new Array(3,1,4);
    p('数组x是:'+x);
    var y = x.join();
    p('y = x.join() 得到的是数组x的字符串表达,其值是'+y+" 其类型是 :" +(typeof y));
    var z = x.join("@");
    p('z = x.join("@");是x的字符串表达,不过分隔符不是默认的"," 而是"@" : '+z);
     
    </script>
  • 分别在最后的位置插入数据和获取数据(获取后删除)
    方法 push pop,分别在最后的位置插入数据和获取数据(获取后删除) 
    就像先入后出的栈一样
    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
     
    var x = new Array(3,1,4);
    p('数组x是:'+x);
     
    x.push(5);
    p('向x中push 5,得到 ' + x);
    var e = x.pop();
    p('从x中pop一个值出来,其值是 ' + e);
     
    p('pop之后,x数组的值是:'+x);
     
    </script>
  • 分别在最开始的位置插入数据和获取数据(获取后删除)
    方法 unshift shift ,分别在最开始的位置插入数据和获取数据(获取后删除)
    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
     
    var x = new Array(3,1,4);
    p('数组x是:'+x);
    x.unshift (5);
    p('对数组 unshift 值5(在最前面加),数组变为:' + x);
    var e = x.shift ();
    p('从数组中 shift 一个数(从最前面取),其值是:' + e);
    p('shift之后,数组变为:' + x);
    </script>
  • 对数组的内容进行排序
    方法 sort对数组的内容进行排序
    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
     
    var x = new Array(3,1,4,1,5,9,2,6);
    p('数组x是:'+x);
    x.sort();
    p('使用sort排序后的数组x是:'+x);
     
    </script>
    
  • 自定义排序算法
    sort()默认采用正排序,即小的数排在前面。 如果需要采用自定义排序的算法,就把比较器函数作为参数传递给sort()。
    比较器函数:
    function comparator(v1,v2){
    return v2-v1; //v2-v1表示大的放前面,小的放后面
    }
    调用sort函数的时候,把这个比较器函数comparator作为参数传递进去即可
    x.sort(comparator);
    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
     
    function comparator(v1,v2){
       return v2-v1;
    }
     
    var x = new Array(3,1,4,1,5,9,2,6);
    p('数组x是:'+x);
    x.sort(comparator);
    p('使用sort 进行自定义倒排序后的数组x是:'+x);
     
    </script>
  • 对数组的内容进行反转
    方法 reverse,对数组的内容进行反转
    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
      
    var x = new Array(3,1,4,1,5,9,2,6);
    p('数组x是:'+x);
    x.reverse();
    p('使用reverse()函数进行反转后的值是:'+x);
     
    </script>
    
  • 获取子数组
    方法 slice 获取子数组
    注意: 第二个参数取不到
    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
       
    var x = new Array(3,1,4,1,5,9,2,6);
    p('数组x是:'+x);
    var y = x.slice(1);
    p('x.slice(1)获取的子数组是:'+y);
    var z = x.slice(1,3);
    p('x.slice(1,3)获取的子数组是:'+z);
    p('第二个参数取不到');
    </script>
  • 删除和插入元素
    方法 splice (不是 slice) 用于删除数组中的元素
    奇葩的是 ,它还能用于向数组中插入元素

    <script>
    function p(s){
      document.write(s);
      document.write("<br>");
    }
       
    var x = new Array(3,1,4,1,5,9,2,6);
    p('数组x是:'+x);
    x.splice (3,2);//从位置3开始 ,删除2个元素
    p('x.splice (3,2) 表示从位置3开始 ,删除2个元素:'+x);
    x.splice(3,0,1,5);
    p('x.splice(3,0,1,5) 从位置3开始,删除0个元素,但是插入1和5,最后得到:'+x);
    </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值