tbwshc

          JavaScript中Array(數組)的屬性和方法 .

          數組有四種定義的方式

          使用構造函數:
          var a = new Array();
          var b = new Array(8);
          var c = new Array("first", "second", "third");
          或者數組直接量:
          var d = ["first", "second", "third"];

          屬性

          Array只有一個屬性,就是length,length表示的是數組所占內存空間的數目,而不僅僅是數組中元素的個數,在剛才定義的數組中,b.length的值為8

          <script>
          var a = new Array("first", "second", "third")
          a[48] = "12"
          document.write(a.length)
          //顯示的結果是49
          </script>
          數組的length屬性是可寫的,這是一個非常有意思的屬性,我們可以通過這種方法來截取數組

          <script>
          var a = new Array("first", "second", "third")
          delete a[1]
          document.write(a.length)
          //顯示的結果是3,說明即使刪除也無法改變數組的長度
          var a = new Array("first", "second", "third")
          a.length = 1
          document.write(a.length)
          //顯示的結果是1,說明只剩下一個元素了
          </script>
          方法

          這里并沒有包括IE和FF并不兼容的一些方法:
          toString():把數組轉換成一個字符串
          toLocaleString():把數組轉換成一個字符串
          join():把數組轉換成一個用符號連接的字符串
          shift():將數組頭部的一個元素移出
          unshift():在數組的頭部插入一個元素
          pop():從數組尾部刪除一個元素
          push():把一個元素添加到數組的尾部
          concat():給數組添加元素
          slice():返回數組的部分
          reverse():將數組反向排序
          sort():對數組進行排序操作
          splice():插入、刪除或者替換一個數組元素

          toString()方法,toLocaleString()方法的作用類似,FF下的作用是完全相同的,IE的話如果元素是字符串,會在“,”后面加上一個空格,如果元素是數字,會擴展到兩位小數,兩者都會改變字符串的length屬性,所以考慮到兼容性,盡量不要使用toLocaleString()方法。

          <script>
          var a = new Array(1, 2, 3, [4, 5, [6, 7]])
          var b = a.toString() //b為字符串形式的 "1, 2, 3, 4, 5, 6, 7"
          var c = new Array(1, 2, 3, [4, 5, [6, 7]])
          var d = c.toLocaleString() //d為字符串形式的 "1, 2, 3, 4, 5, 6, 7"
          //toString()方法和toLocaleString()方法都可以拆解多維數組
          </script>
          join()方法將數組中的所有元素轉換成字符串,然后連接起來,這剛好和String的split()方法是一個相反的操作。join()默認是使用“,”作為分隔符,當然你也可以在方法中指定分隔符

          <script>
          var a = new Array("first", "second", "third")
          var s = a.join("...")
          document.write(s)
          //顯示的結果是“first...second...third”
          </script>
          pop()方法可以從數組尾部刪除若干個元素,push()方法把一個元素添加到數組的尾部,這兩個方法剛好是兩個相反的操作。兩個都是對原來的數組進行操作,但是要注意push()方法返回的是新的數組的長度,而pop()方法則返回被刪去的那個元素。

          <script>
          var a = new Array(1, 2, 3)
          var b = a.push(4,5,[6,7]) //a為[1, 2, 3, 4, 5, [6, 7]]  b為6  注意tbpush()方法不會幫你打開一個數組
          var c = new Array(1, 2, 3, 4, "first")
          var d = c.pop() //c為[1, 2, 3, 4]  d為字符串形式的"first"
          </script>
          shift()方法可以從數組頭部刪除一個元素,unshift()方法把若干元素添加到數組的頭部,這兩個方法剛好是兩個相反的操作。兩個都是對原來的數組進行操作,但是要注意unshift()方法返回的是新的數組的長度,而shift()方法則返回被刪去的那個元素。

          <script>
          var a = new Array(1, 2, 3)
          var b = a.unshift(4,5,[6,7]) //a為[4, 5, [6, 7], 1, 2, 3]  b為6  注意unshift()方法不會幫你打開一個數組,還有就是被插入數值的順序
          var c = new Array("first", 1, 2, 3, 4)
          var d = c.shift() //c為[1, 2, 3, 4]  d為字符串形式的"first"
          </script>
          concat()方法可以返回一個在原有數組上增添了元素的數組,元素用“,”分隔,元素中如果有數組,將被展開并繼續添加,但不支持多維數組形式的展開添加

          <script>
          var a = new Array("first", "second", "third")
          s = a.concat("fourth",["fifth", "sixth"],["seventh", ["eighth", "ninth"]])
          document.write(s[7])
          //顯示的結果是“eighth, ninth”,說明“eighth, ninth”是以數組的形式被添加了進去,此是s的值為["first", "second", "third", "fourth", "fifth", "sixth", "seventh", ["eighth", "ninth"]]
          </script>
          slice()方法返回數組的一個片斷,或者說是子數組。slice()的參數表示字數組的始末位置,如果只有一個參數,就表示從該處開始一直取到最后,如果參數出現負數,則表示倒數的某個位置。slice(start,end) //表示數組從從下標為start(包含這個)的地方開始到end(不包含這個)

          <script>
          var a = new Array(1, 2, 3, 4, 5)
          var b = a.slice(3)  //b為[4, 5]
          var c = a.slice(-3) //c為[3, 4, 5]
          var d = a.slice(1,-1) //d為[2, 3, 4]
          var e = a.slice(-3,-1) //e為[3, 4]
          </script>
          reverse()方法將數組反向排序,他并不創建和返回一個新的數組,而是在原有的數組上進行操作

          <script>
          var a = new Array("first", "second", "third")
          a.reverse()
          document.write(a)
          //顯示的結果是“third,second,first”,這時候數組的順序已經顛倒了
          </script>
          sort()方法的作用是對數組進行排序,這是一個非常奇特的方法,我不知道當初創作他的人是出于懶惰還是聰明,這是一個讓我印象深刻的方法。
          sort()方法的參數是一個有兩個參數,并且有返回值的函數,如果返回的值大于零,則說明前一個參數比后一個參數大,等于零則相等,小于零說明前一個參數比后一個小,而相對小的那個參數將出現在排序的前列。
          sort()方法直接在數組上進行操作,同時也返回值,但是兩者似乎是等價的。sort()方法默認是用字母的順序進行排序

          <script>
          var a = new Array(33, 4, 111, 543)
          a.sort(way)
          function way(x, y){
              if (x % 2 ==0) 
                  return 1;
              if (x % 2 !=0)       
                  return -1;
          }
          //排序的結果是使奇數在前偶數在后
          </script>
          splice()方法的作用是插入、刪除或者替換一個數組元素,他tb不光會在原有的數組上進行修改,還會返回被處理掉的內容,因此這是一個功能強大,但是不容易使用的方法,splice()方法用前兩個參數進行定位,余下的參數表示插入部分。

          <script>
          var a = new Array(1, 2, 3, 4, 5)
          var b = a.splice(2) //a為[1, 2]  b為[3, 4, 5]
          var c = new Array(1, 2, 3, 4, 5)
          var d = c.splice(2,2) //c為[1, 2, 5]  d為[3, 4]
          var e = new Array(1, 2, 3, 4, 5)
          var f = f.splice(-4,2) //e為[1, 4, 5]  f為[2, 3]
          var g = new Array(1, 2, 3, 4, 5)
          var h = g.splice(-2,-2) //第二個參數表示長度,因此負數在此無效
           
          var i = new Array(1, 2, 3, 4, 5)
          var j = i.splice(2,2,"first","second","third") //i為[1, 2, "first", "second", "third", 5]  j為[3, 4]  后面部分會自動前后移動,以保持數組的連續性
          var k = new Array(1, 2, 3, 4, 5)
          var l = k.splice(2,2,["first","second"],"third") //k為[1, 2, ["first", "second"], "third", 5]  l為[3, 4]  splice()方法不會展開數組,只直接寫入
          </script>

          posted on 2012-08-10 14:57 chen11-1 閱讀(1324) 評論(0)  編輯  收藏

          主站蜘蛛池模板: 全州县| 民勤县| 南通市| 兴城市| 长汀县| 莎车县| 龙南县| 正安县| 瓮安县| 阿克苏市| 鄂伦春自治旗| 巴里| 印江| 土默特左旗| 横山县| 石阡县| 三亚市| 新邵县| 湘阴县| 福清市| 泰兴市| 西贡区| 泸水县| 信丰县| 刚察县| 莱芜市| 策勒县| 衡山县| 大兴区| 武鸣县| 丰原市| 济宁市| 德格县| 喀什市| 通辽市| 湖口县| 汕尾市| 平江县| 巫山县| 大邑县| 隆回县|