07、JavaScript-數(shù)組和字符串高級

每天一句:在你想要放棄的那一刻,想想為什么當(dāng)初走到了這里 —— 科比

一、數(shù)組

  • splice()刪除、替換、添加
  arrayObject.splice(start, num);
  參數(shù):
    start: 操作開始位置
    num: 操作的個數(shù)

   // 刪除: 從第1個開始,刪除2個元素,返回值為刪除元素
   arr.splice(1, 2);
  // 替換: 從第0個開始,替換3個,返回值為替換元素
  arr.splice(0, 3, '測試’);
  // 添加: 從第1個開始,替換0個,返回值為空
  arr.splice(1, 0, '測試’);   

案例: 數(shù)組去重

  • join()方法用于把數(shù)組中的所有元素放入一個字符串
  arrayObject.join(separtor);
  參數(shù): 
    separtor: 指定使用的分隔符,如果缺省,則使用逗號作為分隔符;
 
  var arr = [1,2,3];
  // 以-為分隔符,將數(shù)組串聯(lián)成字符串
  alert( arr.join('-') );
  • sort()方法是從小到大排序,返回排序后的數(shù)組,而源數(shù)組也是排序好的
  注1: sort默認(rèn)是按照字符串進行處理的,即比較首字母; 數(shù)組排序和數(shù)字字符串排序算法是一樣的;
  注2: sort方法并不是JS的標(biāo)準(zhǔn)中定制的,每個瀏覽器都可以自定義不同的排序方法;

  // 給sort傳遞一個比較函數(shù)
  arr2.sort(function(a, b){ 
    // return a - b;    // 從小到大
    return b - a;  // 從大到小
  });
        
  // 其他類型的比較
  var arrW = ['123px','23px','1000px','327px'];
  arrW.sort(function(a, b){
    return parseInt(a) - parseInt(b);
  });
  alert(arrW);

案例: 隨機排序,即將數(shù)組打亂

  • reverse()方法從大到小排序,返回排序后的數(shù)組,而源數(shù)組也是排序好的

二、字符串

  • 字符串基本使用
    // 新建字符串
    var str3 = '面對疾風(fēng)吧...';
    var str4 = new String('哈撒科...');
    // new Number(),new Boolean(),new Date(),new Function(),new Array(),new Object() ==> (通過new關(guān)鍵字得到的都是對象,但不推薦用法)

        // 字符串是特殊的數(shù)組
    // 獲取字符串的長度
    str3.length
                
    // 通過下標(biāo)獲取字符串中的字符
    alert( str3[1] );
  • toUpperCase()轉(zhuǎn)為大寫

  • toLowerCase()轉(zhuǎn)為小寫

  • charAt()方法返回指定位置的字符

  • indexOf()方法返回某個指定的字符串值在字符串中首次出現(xiàn)的位置

  stringObject.indexOf(searchValue,fromIndex);
  參數(shù): 
    searchValue: 必填,檢索的字符串值;
    fromIndex:  可選,規(guī)定在字符串中開始位置,默認(rèn)就是0;
  返回值: 
    返回對應(yīng)字符串的位置,如果不存在返回-1;
  注: indexOf()從左往右查找; lastIndexOf()從右往左邊查找

案例: 查找某個字符串出現(xiàn)的次數(shù)

  • substring()方法用于提取字符串中介于兩個指定下標(biāo)之間的字符
  stringObject.substring(start, stop);
  返回值: 返回的是stringObject的子字符串,其內(nèi)容是從start處到stop-1處的所有字符;
  注: 是不包含stop處的字符;start和stop大小沒有先后順序; 當(dāng)參數(shù)為負(fù)數(shù)時,該參數(shù)當(dāng)0處理

案例: 動態(tài)展開/收起效果

  • split()方法用于把一個字符串分割成數(shù)組
  stringObject.split(separator,length);
  參數(shù): 
    separator: 以separator分割;
    length: 指定返回的數(shù)組最大長度;
  返回值: 返回數(shù)組中的字符串不包含separator本身;     
  注: 若無參數(shù),是將整個字符串放入數(shù)組,即是字符串轉(zhuǎn)為數(shù)組類型;

  // 無參數(shù),即是將字符串轉(zhuǎn)為數(shù)組
  var arr1 = str.split();
        
  // 以'.'切割字符串
  var arr2 = str.split('.');
        
  // 以''將字符串一個個字符切分
  var arr3 = str.split('');

案例(面試): 顛倒字符串
綜合案例: 查找、替換效果(split和join結(jié)合使用)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容