1. 程式人生 > >js陣列API和字串API彙總

js陣列API和字串API彙總

一、陣列API

      1. 連線:arr.join("連線符")

      用連線符把數組裡面的元素連線成字串。

      arr.join("")能無縫連線。

   2. 拼接:arr.concat("a","b",arr1)

      強調:(1)不會修改原陣列,返回新陣列。

           (2)concat方法中的陣列會被打散為單個元素再拼接。

   3. 擷取:arr.slice(start[,end])

      強調:(1)不會修改原陣列,返回新的子陣列。

           (2)含頭不含尾。

           (3)省略第二個引數表示從start位置開始一直擷取到末尾。

           (4)支援負數,表示倒數第幾個。

   4. 刪除、插入、替換:arr.splice(start,n[,value1,value2...])

      強調:(1)直接修改原陣列。

           (2)返回所有被刪除元素組成的子陣列。

           (3)如果是插入,刪除了0個數,那麼從start位置開始以及之後的元素會被順移。

   5. 翻轉陣列:arr.reverse()

      強調:(1)直接修改原陣列。

   6. 陣列排序:arr.sort()

      強調:(1)直接修改原陣列。

           (2)預設按照陣列元素第一位的ASCII碼從小到大排列。

           (3)可以設定下列的比較器函式來控制升序,降序或者打亂。

           (4)arr.sort(function(a,b){return a-b;}); 升序(只限陣列中是數字或者數字字串)。

           (5)arr.sort(function(a,b){return b-a;}); 降序(只限陣列中是數字或者數字字串)。

           (6)arr.sort(function(){

                   return Math.random()>.5 ? 1 : -1;

              });隨機打亂陣列(陣列中可以是任何資料型別)

   7. 查詢:arr.indexOf(value[,from])或arr.lastIndexOf(value[,from])

      強調:(1)返回value在陣列中的位置,沒有找到返回-1

   8. 是否有符合的:arr.some(function(value,index,arr){

                      return value > 7;

                  })

      強調:(1)判斷陣列中有沒有符合條件的元素,只要遇到符合條件的就退出迴圈。

           (2)返回boolean值。

   9. 是否都符合:arr.every(function(value,index,arr){return value > 7;})

      強調:(1)判斷陣列中的元素是否都符合條件。

           (2)返回boolean值。

   10. 過濾陣列:arr.filter(function(value,index,arr){return value > 7;})

       強調:(1)過濾陣列,返回符合條件的元素組成的新陣列。

   11. 迴圈陣列,無返回值arr.forEach(function(value,index,arr){})

   12. 迴圈陣列,有返回值:arr.map(function(value,index,arr){})

   13.彙總:arr.reduce(function(prev,value,index,arr){

                  return prev + value;

            })

       返回數組裡面所有元素相加的和。prev是之前那些元素的和。

   14. 陣列轉字串:String(arr)或arr.toString()

       將陣列中的元素用逗號連線成字串,類似於arr.join(",")。

   15. 開頭入棧:arr.unshift(value)

       在陣列的最開頭插入元素。

       強調:(1)修改原陣列。

            (2)返回新陣列的length。

   16. 開頭出棧:arr.shift()

       彈出陣列最開頭的元素。

       強調:(1)修改原陣列。

            (2)返回被彈出的元素。

   17. 結尾入棧:arr.push(value1[,value2,arr1])

       在陣列末尾追加元素。

       強調:(1)修改原陣列。

            (2)返回新陣列的length。

            (3)追加進去的陣列不會被打散。

   18. 結尾出棧:arr.pop()

       彈出陣列最末尾的元素。

       強調:(1)修改原陣列。

            (2)返回被彈出的元素。

二、字串API

   1. 擷取:str.slice(from[,end])或str.substring(start[,end])或str.substr(start[,length])

      強調:(1)slice和substring用法類似,只是slice支援負數,而substring的負數會被轉換成0,然後擷取0和start之間字元。

           (2)substr的start支援負數。

   2. 分割:str.split("分割符")

      把字串以分割符為界點分割成陣列。

   3. 查詢:str.indexOf(value[,from])或str.lastIndexOf(value[,from])

      強調:(1)indexOf()只查詢第一個,找不到返回-1。

   4. 替換:str.replace("被替換字元","替換字元")

      強調:(1)只會替換第一個,如果要替換所有符合條件的字元可以使用正則g。

   5. 拼接:str.concat(value)

      把value拼接到str上,效果類似於str+value

   6. 獲取指定位置字元:str.charAt(index)或str[index]

   7. 去掉字串前後空格:str.trim()

   8. 字串轉ASCII:str.charCodeAt(index)

   9. ASCII字串String.fromCharCode(Unicode)

   10. 轉大寫字母:str.toUpperCase()

   11. 轉小寫字母:str.toLowerCase()

三、4種字串“查詢”方法的對比

   1. str.indexOf(value[,from])

      強調:(1)只能查詢第一個匹配的位置,沒找到返回-1,可用迴圈改變from查詢所有。

   2. str.search(reg)

      強調:(1)僅判斷有沒有。

           (2)只返回第一個匹配的位置,沒找到返回-1。

           (3)支援正則(不支援g,支援i)。

   3. str.match(reg)

      強調:(1)返回所有正則匹配的字串組成的陣列,沒找到返回null。

           (2)支援正則,正則表示式必須帶g,才能返回所有匹配的字串。

   4. reg.exec(str)

      既能找到關鍵詞的位置,又能獲得內容。

      強調:(1)支援正則,找不到返回null。

           (2)若要查詢所有正則必須加g,不加g只能查詢第一個,而且要放進迴圈裡面。

var str = "大5家好5,謝6謝!";
var reg = /[\d]/g;
console.log(str)
var arr = null;
while((arr = reg.exec(str)) !== null){
    console.log(arr)
}