【数组】数组的操作

 

   通过数组[下标]来读写数组的元素

    如:a[0] = 10;
        a[1] = "Tom";
        a[2] = 12.6;

   下标的范围是 0 – (23(上标2) -1),当下标是负数、浮点甚至布尔值的时候,数组会自动转换为对象类型。

    如:
   var b = new Array();
   b[2.2]  = "XXXXX";
   alert(b[2.2]); //-> XXXXX

  通过push(),pop()方法读写元素

 

   (1).push

    往数组后面添加数组,并返回数组新长度
    var a =    ["aa","bb","cc"];
    document.write(a.push("dd"));    // -> 4

 

   (2).pop

     删除数组最后一个元素,并返回该元素
     var a =    ["aa","bb","cc"];
     document.write(a.pop());    // -> cc

  数组的循环

  

   (1).for循环:

     var a = [1,2,3,4,5,6];
     for(var i =0; i<a.length; i++){
          alert(a[i]);
     }

   (2).foreach循环:

      var a = [1,2,3,4,5,6];
      for(var e in a){
          alert(e);
       }
   还是依次弹出1至6,for…in是历遍对象(数组是特殊的对象)对象,用在数组上,因为数组没有属性名,所以直接输出值,这结构语句用在对象上,例如下面
     var a = {x:1,y:2,z:3};
     for(var e in a){
       alert(e    + ":" + a[e]);
     }

    此时e取到的是属性名,即 x、y、x,而要取得值,则采用 数组名[属性],所以 a[e] 等同于 a[“x”]、a[“y”]、a[“z”]。

   将数组转换为字符串

 

   (1).join("分隔符")

    用指定间隔符连起来,把数组转为字符串
     例:
       var a = ['a','b','c','d','e','f','g'];
       alert(a.join(",")); // -> a,b,c,d,e,f,g
    需要注意的是只转换一维数组里面,如果数组里面还有数组,将不是采用join指定的字符串接,而是采用默认的toString()。

 

    (2).toString()

    把数组转为字符串,不只数组,所有对象均可使用该方法
    var a = [5,6,7,8,9,["A","BB"],100];
    document.write(a.toString());    // -> 5,6,7,8,9,A,BB,100

    (3)valueOf
    根据不同对象返回不同原始值,用于输出的话跟toString()差不多,但是toString()是返回string类型,而valueOf()是返回原对象类型。
    var a = [1,2,3,[4,5,6,[7,8,9]]];
   document.write(a.valueOf());    // -> 1,2,3,4,5,6,7,8,9

 

 

   使用slice返回数组片段 

     var a = ['a','b','c','d','e','f','g'];
    alert(a.slice(1,2)); // -> b
    alert(a.slice(2));    // -> c,d,e,f,g
    alert(a.slice(-4));   // -> d,e,f,g
    alert(a.slice(-2,-6));    // -> 空

    a.slice(1,2),从下标为1开始,到下标为2之间的数,注意并不包括下标为2的元素
    如果只有一个参数,则默认到数组最后。
   -4是表示倒数第4个元素,所以返回倒数的四个元素。
  alert(a.slice(-2,-6))从倒数第2开始,因为是往后截取,所以显然取不到前面的元素,所以返回空数组,如果改成 a.slice(-6,-2) 则返回b,c,d,e。

 

 

 

 

 城别.笔

posted @ 2018-04-18 16:59  城别  阅读(131)  评论(0编辑  收藏  举报