探索與發(fā)現(xiàn)

          研究java技術(shù)

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            83 隨筆 :: 0 文章 :: 109 評(píng)論 :: 0 Trackbacks

          本文介紹如下幾個(gè)方面的內(nèi)容:

          1.如何創(chuàng)建數(shù)組

          2.如何對(duì)數(shù)組進(jìn)行操作(添加,刪除,讀取)

          3.數(shù)組常見(jiàn)方法和屬性

          如何創(chuàng)建一個(gè)數(shù)組,一般地根據(jù)初始化設(shè)定簡(jiǎn)單分為3種:

          1.單純創(chuàng)建數(shù)組:

          var arr=new Array();

          要點(diǎn):用new關(guān)鍵字創(chuàng)建數(shù)組對(duì)象Array(),Array()對(duì)象是一個(gè)本地類,可以用new創(chuàng)建一個(gè)對(duì)象后使用

          2.創(chuàng)建數(shù)組的同時(shí)規(guī)定數(shù)組大小:

          var arr=new Array(10);//這里就創(chuàng)建了一個(gè)初始化大小為10的數(shù)組

          注意:當(dāng)使用數(shù)組大小操作初始化大小時(shí),數(shù)組會(huì)自動(dòng)被撐大,不會(huì)像C語(yǔ)言那樣發(fā)生錯(cuò)誤.動(dòng)態(tài)增長(zhǎng)是js數(shù)組的一個(gè)性質(zhì).另外,js中支持最大數(shù)組長(zhǎng)度為

          4294967295

          3.直接初始化:

          var arr=new Array("love","hate","pain");//這里就直接初始化了數(shù)組

          或var arr=["happy","cute","scare"];//括號(hào)也可以聲明一個(gè)數(shù)組對(duì)象

          當(dāng)然,類似C語(yǔ)言,可以定義2維3維和多維的數(shù)組,例如:

          <script language=Javascript>

              var myArray = new Array();

              for(var i=0;i<10;i++ )...{

                  myArray[i]=new Array();

                  myArray[i][0]=Math.floor(Math.random()*10);

                  myArray[i][1]=Math.floor(Math.random()*10);

                  myArray[i][2]=Math.floor(Math.random()*10);

                  myArray[i][3]=Math.floor(Math.random()*10);

                  myArray[i][4]=Math.floor(Math.random()*10);

                  myArray[i][5]=Math.floor(Math.random()*10);

                  myArray[i][6]=Math.floor(Math.random()*10);

                  myArray[i][7]=Math.floor(Math.random()*10);

                  myArray[i][8]=Math.floor(Math.random()*10);

              }

             

              myArray.sort( function(x, y) ...{

                  return (x[0]==y[0])?((x[4]==y[4])?(x[8]-y[8]):(x[4]-y[4])):(x[2]-y[2])

              });

              for(var i=0;i<myArray.length;i++ )...{

                  document.write(myArray[i].join(",") + "<br/>");

              }

          </script>

          數(shù)組的屬性:length

          arr.length返回?cái)?shù)組arr的長(zhǎng)度,常見(jiàn)于循環(huán)中對(duì)數(shù)組的遍歷,比如:

          for(var i=0;i<arr.length;i++){

          執(zhí)行部分

          }

          數(shù)組元素的訪問(wèn): arr[index],其中index表示索引即數(shù)組基數(shù),從0開始,共有arr.length個(gè)元素.比如: arr[0]訪問(wèn)第一個(gè)數(shù)組元素,arr[1]訪問(wèn)第二個(gè)數(shù)組元素....依

          次類推 數(shù)組的操作方法:先概覽下下面的這些操作數(shù)組常用的方法(13個(gè))

          toString(),valueOf(),toLocalString(),join(),split(),slice(),concat(),

          pop(),push(),shift(),unshift(),sort(),splice()

          下面逐一分析這些方法的功能和用法.

          toString(),valueOf(),toLocalString():

          功能:返回?cái)?shù)組的全部元素

          注:數(shù)組名也可以返回整個(gè)數(shù)組

          代碼:

              var m=["am","bm","cm"];//用括號(hào)聲明一個(gè)數(shù)組對(duì)象

              alert(m.toString());//toString()返回?cái)?shù)組對(duì)象的所有內(nèi)容,用逗號(hào)分割,即am,bm,cm

              alert(m.valueOf());//valueOf()也返回?cái)?shù)組對(duì)象的所有內(nèi)容

              alert(m.toLocaleString());//toLocaleString()也返回?cái)?shù)組對(duì)象的所有內(nèi)容,但有地區(qū)語(yǔ)言區(qū)別,暫不研究

              alert(m);//數(shù)組名也返回?cái)?shù)組對(duì)象的所有內(nèi)容

          join():

          功能:把數(shù)組各個(gè)項(xiàng)用某個(gè)字符(串)連接起來(lái),但并不修改原來(lái)的數(shù)組

          代碼:

              var m=["am","bm","cm"];//用括號(hào)聲明一個(gè)數(shù)組對(duì)象

              var n=m.join("---");//用---連接am,bm,cm.

              alert(m.toString());//m并沒(méi)有被修改,返回am,bm,cm

              alert(n);//n是一個(gè)字符串,為am---bm---cm

          split():

          功能:把一個(gè)字符串按某個(gè)字符(串)分割成一個(gè)數(shù)組,但不修改原字符串

          代碼:

              var str="I love maomao,I am caolvchong";

              var arr=str.split("o");//按字符o把str字符串分割成一個(gè)數(shù)組

              alert(arr);//輸出整個(gè)數(shù)組

          slice():返回某個(gè)位置開始(到某個(gè)位置結(jié)束)的數(shù)組部分,不修改原數(shù)組

          代碼:

              var m=["am","bm","cm","dm","em","fm"];

              var n=m.slice(2);//返回第二個(gè)元素bm后面的元素,即cm,dm,em,fm

              var q=m.slice(2,5);//返回第二個(gè)元素后到第五個(gè)元素,即cm,dm,em

              alert(n);

              alert(q);

          數(shù)組對(duì)象的棧操作:

          push():數(shù)組末尾添加一個(gè)項(xiàng)

          pop():刪除數(shù)組最后一個(gè)項(xiàng)

          代碼:

              var m=["am","bm","cm","dm","em","fm"];

              m.push("gm");//在數(shù)組末尾添加元素gm

              alert(m);

              m.pop();//刪除數(shù)組最后一個(gè)元素gm

              alert(m);

          數(shù)組對(duì)象的隊(duì)列操作:

          unshift():數(shù)組頭添加一個(gè)項(xiàng)

          shift():刪除數(shù)組第一個(gè)項(xiàng)

          代碼:

              var m=["am","bm","cm","dm","em","fm"];

              m.unshift("gm");//在數(shù)組第一個(gè)元素位置添加元素gm

              alert(m);

              m.shift();//刪除數(shù)組第一個(gè)元素gm

              alert(m);

          sort():數(shù)組按字符的ASCII碼進(jìn)行排序,修改數(shù)組對(duì)象

          注:即便是數(shù)字?jǐn)?shù)組,也將轉(zhuǎn)化為字符串來(lái)進(jìn)行比較排序

          代碼:

              var m=["am","fm","gm","bm","em","dm"];

              m.sort();//按字母序排序

              alert(m);

          concat():在數(shù)組尾添加元素,但不修改數(shù)組對(duì)象

          代碼:

              var m=["am","bm"]

              var n=m.concat("cm");//添加一項(xiàng)cm,并且賦予新數(shù)組對(duì)象

              alert(m);//原數(shù)組沒(méi)有被修改

              alert(n);//輸出新數(shù)組對(duì)象

          splice():在數(shù)組的任意位置進(jìn)行添加,刪除或者替換元素,直接修改數(shù)組對(duì)象

          細(xì)節(jié):

          splice()有三個(gè)參數(shù)或三個(gè)以上參數(shù),前兩個(gè)是必須的,后面參數(shù)是可選的

          進(jìn)行添加:splice(起始項(xiàng),0,添加項(xiàng))

          進(jìn)行刪除:splice(起始項(xiàng),要?jiǎng)h除的項(xiàng)個(gè)數(shù))

          進(jìn)行替換:splice(起始項(xiàng),替換個(gè)數(shù),替換項(xiàng)) 這個(gè)其實(shí)是添加刪除的共同結(jié)果

          代碼:

              var m=["am","bm"]

              m.splice(1,0,"fm","sm");//在第一項(xiàng)后面添加fm和sm,返回am,fm,sm,bm

              alert(m);

              m.splice(2,1);//刪除第二項(xiàng)后面一項(xiàng)(即第三項(xiàng)sm,返回am,fm,bm)

              alert(m);

              m.splice(2,1,"mm");//替換第二項(xiàng)后面一項(xiàng)(即第三項(xiàng),返回am,fm,mm)

              alert(m);





          在有的教程上沒(méi)有提到數(shù)組對(duì)象,都用自定義的數(shù)組,沒(méi)提到的大概都是老版本了:

          //定義一維數(shù)組
          function MArray(len){
          this.length = len;
          for(i=1;i<=len;i++) this[i] = 0;
          return this;
          }
          //創(chuàng)建數(shù)組
          var strarray = new MArray(9)
          //訪問(wèn)數(shù)組
          for(aint in strarray) document.write(aint + ":" + strarray[aint] + "<br>");


          //定義二維數(shù)組
          function creatMArray(row,col){
          var indx=0;
          this.length=(row*10)+col
          for(var x=1;x<=row;x++)
          for(var y=1;y<=col;y++){
          indx=(x*10)+y;
          this[indx]="";
          }
          return this;
          }
          //創(chuàng)建二維數(shù)組
          var xarr = new creatMArray(11,2)
          //訪問(wèn)二維數(shù)組
          for (x in xarr) document.write(x + ":" + xarr[x] + "<br>")
          posted on 2009-05-14 08:18 蜘蛛 閱讀(214) 評(píng)論(2)  編輯  收藏 所屬分類: JavaScript

          評(píng)論

          # re: 數(shù)組 2009-05-14 08:25 蜘蛛
          JavaScript類型檢測(cè)小結(jié)(上)
          http://lifesinger.org/blog/?p=1109  回復(fù)  更多評(píng)論
            

          # re: 數(shù)組 2009-05-14 08:28 蜘蛛
          javascript類型轉(zhuǎn)換
          http://blog.csdn.net/fireelement/archive/2007/06/03/1636247.aspx  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 察隅县| 佛冈县| 西平县| 左权县| 扶余县| 和林格尔县| 长垣县| 郑州市| 彰化市| 弋阳县| 仲巴县| 潢川县| 天门市| 正定县| 洮南市| 邯郸市| 阿巴嘎旗| 永丰县| 海宁市| 宜兰市| 东港市| 内丘县| 福海县| 县级市| 保山市| 庄河市| 六盘水市| 祁门县| 印江| 西华县| 亚东县| 巩义市| 屏东市| 万载县| 九龙城区| 沛县| 汶上县| 鲁山县| 和田县| 山丹县| 文化|