国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

js數(shù)組與字符串常用方法總結(jié)

2024-05-06 16:34:32
字體:
供稿:網(wǎng)友

最近在梳理js的基礎(chǔ),首先從數(shù)組和字符串開始。

string 常用方法:

1.substring(start開始位置的索引,end結(jié)束位置索引) 截取的位置不包含結(jié)束位置的字符,只寫一個參數(shù)表示從開始位置截取到最后

   var str='abcdefg';     str.substring(1) //得到bcdefg  str.substring(1,3) //得到bc

輸入負值時將負值變?yōu)?,哪個較小作為開始位置

     str.substing(-1,1)  =>str.substring(0,1) //a
     str.substring(1,-2) =>str.substring(0,1) //a

2.slice(start開始位置索引,end結(jié)束位置索引) 基本和substring相似,區(qū)別在參數(shù)為負數(shù)。

var str='abcdefg'; str.slice(1)  //bcdefg      str.substring(1,3) // bc

輸入負值時 值與字符串的長度相加

  str.slice(-1)          =>str.slice(6)    //g
  str.slice(1,-2) =>str.slice(1,5)  //bcde
  str.slice(-2,-1)=>str.slice(5,6)  //f

值絕對值大于字符串的長度時變?yōu)?0

  str.slice(-22) =>str.substring(0)  //abcdefg

第二個參數(shù)絕對值大于字符串的長度時,返回''

3.substr(start開始位置索引,end需要返回的字符個數(shù))

var str='abcdefg'; str.substr(1) //bcdefg      str.substr(1,1) //b

輸入負值時 start參數(shù)與字符串的長度相加 ,end為負時參數(shù)變?yōu)?

 str.substr(-1) =>str.substr(6)//g          str.substr(-2,-3) // ''

4.charAt(index) 方法返回指定索引位置處的字符。如果超出有效范圍(0與字符串長度減一)的索引值返回空字符串.

 var str='abcdefg'; str.charAt(2) // c

5.index(string)  返回String對象內(nèi)第一次出現(xiàn)子字符串位置。如果沒有找到子字符串,則返回-1。

 var str='abcdefga'  str.indexOf('a')  // 0   str.indexOf('h') //-1

6.lastIndexOf(string)  倒敘查找

返回String對象內(nèi)第一次出現(xiàn)子字符串位置。如果沒有找到子字符串,則返回-1。  

var str='abcdefga'     str.lastIndexOf('a') // 7

7.split(str)  將字符串以參數(shù)分割為數(shù)組

var str='abcadeafg'     str.split('a') //["", "bc", "de", "fg"]

8. toLowerCase方法返回一個字符串,該字符串中的字母被轉(zhuǎn)換成小寫。

9. toUpperCase方法返回一個字符串,該字符串中的所有字母都被轉(zhuǎn)換為大寫字母。

10.match() – 方法可在字符串內(nèi)檢索指定的值,或找到一個或多個正則表達式的匹配

11.search  方法返回與正則表達式查找內(nèi)容匹配的第一個字符串的位置。

12.replace 用來查找匹配一個正則表達式的字符串,然后使用新字符串代替匹配

http://www.cnblogs.com/bijiapo/p/5451924.html

數(shù)組常用的方法

1. push      添加到最后        返回添加后的數(shù)組

2. unshift   添加到最前面      返回添加后的數(shù)組

3. shift     刪除(從前面)    返回處理后的數(shù)組

4. pop       刪除最后一項      返回處理后的數(shù)組

5. reverse   數(shù)組翻轉(zhuǎn)          返回處理后的數(shù)組

6. join      數(shù)組轉(zhuǎn)化為字符串  

   var arr=[1,2,3,4,5], str=arr.join('--');     console.log(str); // 1--2--3--4--5 以join內(nèi)的參數(shù)切割數(shù)組    console.log(arr); // [1,2,3,4,5]  原數(shù)組未變

7. slice(start,end)     截取數(shù)組 從start(開始) 到end(結(jié)束 不包含)

                            返回新數(shù)組,原數(shù)組不變

    var arr=[1,2,3,4,5],new=arr.slice(2,4);    console.log(new);  // [3,4]    console.log(arr);  // [1,2,3,4,5]     
   

8. concat   數(shù)組合并

9. splice(開始下標,個數(shù),ele1,ele2....) 剪接數(shù)組

  (1).一個參數(shù)  從參數(shù)位置截取 填寫負數(shù)類似上面str slice  返回截好的數(shù)組 原數(shù)組變化

     var arr=[1,2,3,4,5];     console.log(arr.splice(1));  // [2,3,4,5]     console.log(arr);       // [1]     console.lgo(arr.splice(-1))  // [5]    

  (2).二個參數(shù)  截取 (開始位置,個數(shù)) 返回截好的數(shù)組 原數(shù)組變化

     var arr=[1,2,3,4,5];     console.log(arr.splice(1,3)); // [2,3,4]     console.log(arr)       // [1,5]     arr.splice(0,1) =>arr.shift()     arr.splcie(arr.length-1,1) =>arr.pop()

   (3).添加  原數(shù)組增加

     var arr=[1,2,3,4,5];     console.log(arr.splice(1,0,13)); // []     console.log(arr);        // [1,13,2,3,4,5]

  (4).替換 

     var arr=[1,2,3,4,5];     console.log(arr.splice(1,2,'a','b')) // [2,3]     console.log(arr);        // [1,'a','b',4,5]     arr.splice(0,0,1) =>arr.unshift(1);     arr.splice(arr.length,0,1) => arr.push(1)

  10. arr.forEach(item,index,array){}   遍歷,循環(huán) 類似jquery的each

      其中的item參數(shù)是數(shù)組中的內(nèi)容,index為其索引,array表示數(shù)組本身

var arr=[1,2,3,4,5];      arr.forEach(function(item,index,array){      })

      遇到嵌套跳出循環(huán)出現(xiàn)問題,暫時沒有解決;

  11. map方法        映射 用法和forEach類似

   var men=[          {'name':1,'age':12},          {'name':2,'age':22},          {'name':3,'age':33}      ],      age=men.map(function(item){          return item.age;      })

  12. arr.sort  排序

  var arr=[1,2,22,11,33,3,5,4];    console.log(arr.sort()) // [1,11,2,22,3,33,4,5] 

      默認情況下sort方法是按ascii字母順序排序的,而非我們認為是按數(shù)字大小排序

       arr.sort(function(a,b){ return a-b})

      a-b從小到大 b-a從大到小

  13.  順便寫寫我知道的排序方法

    (1)冒泡排序  每次比較相鄰的兩個數(shù),如果后一個數(shù)比前一個數(shù)小,換位置

  function bSort(arr){      var tmp;      for(var i=0,len=arr.length-1;i<len;i++){        for(var j=0;j<len;j++){          if(arr[j]>arr[j+1]){            //換位置            tmp=arr[j+1];            arr[j+1]=arr[j];            arr[j]=tmp;          }        }      }      return arr;    }     function bSort(arr){      var tmp;      arr.forEach(function(item,i){        arr.forEach(function(item,i){          if(item>arr[i+1]){            //換位置            tmp = arr[i + 1];            arr[i + 1] = arr[i];            arr[i] = tmp;          }        })      })      return arr    }

    (2)快速排序 二分法,找到中間的數(shù),取出來(新數(shù)組),原數(shù)組沒,每次和此數(shù)比較,小的放到左邊,大的放到右面     

 function fastSoft(arr){        var len=arr.length;        if(len<=1){ return arr}        var  cIndex=Math.floor(len/2),           c=arr.splice(c,1),           left=[],           right=[];        arr.forEach(function(item,i){            if(item<c[0]){            left.push(item);          }else{            right.push(item);          }        })     return fastSoft(left).concat(c,fastSoft(right));   }   

  14. 數(shù)組的去重也寫下吧

    (1)雙層循環(huán)不是很好                

    var arr=[2,3,2,2,2,4,5],          arr2=[];            function find(arr2,ele){             for(var i= 0,len=arr2.length;i<len;i++){               if(arr2[i]==ele) return true;             }              return false;            }            for(var i= 0,len=arr.length;i<len;i++){              if(!find(arr2,arr[i])){                arr2.push(arr[i]);              }            }

    (2)利用json的key值無重復(fù)              

  var arr=[2,3,2,2,2,4,5],          json={},          arr2=[];            arr.forEach(function(item,i){              if(!json[item]){                json[item]=222;              }            });            for(var name in json){              arr2.push(Number(name));//類型發(fā)生變化了            }

     (3) 利用sort方法排序,去掉旁邊相同項      

   var arr=[2,3,2,4,4,4,5],      arr2=[];        arr.sort();        for(var i=0;i<arr.length;i++){          if(arr[i]==arr[i+1]){            arr.splice(i--,1);          }        }

      一些常見數(shù)學(xué)方法

        math.abs() 取絕對值  math.ceil() 向上取整 math.floor() 向下取整        math.round() 四舍五入 math.roundom    function getRan(n,m){      return Math.floor(Math.random()*(m-n)+n);    }  
  

      數(shù)組和字符串的一些綜合應(yīng)用

      1. 截取后綴名

        (1) var str='1.xxx.avi';

           str=str.substring(str.lastIndexOf('.')+1);

        (2) var str='1.xxx.avi';

        var arr=str.split('.');        console.log(arr[arr.length-1]);

      2.字母翻轉(zhuǎn),首字母大寫          

     var str='wo shi yi ge demo',        arr=str.split(' ');        for(var i=0;i<arr.length;i++){          console.log()         arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);        }        arr.reverse();        str=arr.join(' ');

      3. str中字符出現(xiàn)次數(shù)的統(tǒng)計          

     var str='aaaandkdffsfsdfsfssq12345',        json={},        n= 0,        sName;        for(var i= 0,len=str.length;i<len;i++){          var Letter=str.charAt(i);          //統(tǒng)計次數(shù)          if(json[Letter]){            json[Letter]++;          }else{            json[Letter]=1;          }        }        //找最大        for(var name in json){          if(json[name]>n){            n=json[name];            sName=name;          }        }        console.log('出現(xiàn)最多的字母'+sName+'次數(shù)為'+n);

      4.  簡單的url參數(shù)解析              

  function getData() {          var search = window.location.search.substring(1);          if (!search) {            return;          }          var arr = search.split('&'),              arr2 = [],              json = {},              key,              alue;          for (var i = 0; i < arr.length; i++) {            arr2 = arr[i].split('=');            key = arr2[0];            value = arr2[1];            json[key] = value;          }          return json;         }

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持VeVb武林網(wǎng)!


注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳山县| 邵阳县| 巩留县| 江门市| 莒南县| 赞皇县| 沂水县| 开封市| 丹棱县| 克什克腾旗| 吐鲁番市| 莲花县| 武隆县| 靖西县| 田东县| 都昌县| 乌苏市| 古田县| 黑龙江省| 文安县| 当雄县| 南昌市| 高陵县| 祁门县| 景洪市| 海安县| 略阳县| 汽车| 辽阳县| 吉安市| 沅江市| 华池县| 海城市| 十堰市| 巴中市| 德化县| 杭锦旗| 鞍山市| 邻水| 新源县| 桐庐县|