JavaScript基礎複習(八) 字符串,數組操作

數組

  • 截取相關

    • slice 截取 不會影響原始數組
    var arr = [1,2,3,4,5];
    // 截取  從 i 到 j的數組,不會改變原數組
    console.log(arr.slice(3));    // [4,5]
    console.log(arr);         // [1,2,3,4,5]
    console.log(arr.slice(1,3))   // [2,3]
    console.log(arr);      // [1,2,3,4,5]
    
    
    • splice 刪除,插入,替換 改變原始數組
    var strArray = ['1', '2', 'd', 's', 'i'];
    //splice(i,j)  刪除   以下標爲i開始,截取j個元素
    strArray.splice(0,1);  //已刪除的    ["1"]
    console.log(strArray);    //刪除後的數組  ["2", "d", "s", "i"]
    //splice(i,0,j) 插入   以i開始,插入項,在 i 下標之前開始插入
    strArray.splice(1,0,'f','g','h');  
    console.log(strArray);     // ["2", "f", "g", "h", "d", "s", "i"]
    //splice(i,n,j) 替換  以i開始,刪除n項,插入其他項
    strArray.splice(1,1,'s','z');  // 即刪除i及其後面n-1項,在插入其他項。
    console.log(strArray);  //  ["2", "s", "z", "g", "h", "2", "d", "s", "i"]
    
    
  • 棧與隊列操作(數組增加或刪除元素)


var arr = [1,3,4,5,8,2,4,9];
console.log(arr.push(5));  //在數組末尾添加元素
console.log(arr);
console.log(arr.pop());     //彈出棧頂那項  刪除並返回數組的最後一個元素
console.log(arr);
console.log(arr.shift());   //刪除並返回數組的第一個元素
console.log(arr);
console.log(arr.unshift(9)); //在數組頭部添加元素
console.log(arr);

  • 重排序方法
    • reverse() 反轉數組項的順序
    • sort() 默認按照字符串排序a-z
// 增加一個compare函數,實現對數值排序(升序或降序)
var arr=[1,6,5,7,2,8,3];
console.log(arr.reverse());
function compare(value1,value2){
    return value1-value2;  //升序
    return value2-value1;  //降序
}
console.log(arr.sort(compare));
  • 迭代方法
    • every() 如果該函數對每一項都返回true,則返回true
    • filter() 返回該函數會返回true 的項組成的數組
    • forEach() 這個方法沒有返回值
    • map() 返回每次函數調用的結果組成的數組
    • some() 如果該函數對任意一項返回true,則返回true

迭代方法在數組的操作中是很常用的

  1. arr.forEach()是和for循環一樣,是代替for。arr.map()是修改數組其中的數據,並返回新的數據。
  2. arr.forEach() 沒有return arr.map() 有return
  • 歸併方法
    • reduce() 數組的逐個遍歷,順序
    • reduceRight() 逆序

var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur){
    return prev + cur;
});
var sum1 = values.reduceRight(function(prev, cur){
    return prev * cur;
});
console.log(sum);   // 15
console.log(sum1);  // 120

  • 其他方法
    • from() 將僞數組變成數組,就是只要有length的就可以轉成數組
    // 有一個用法,數組去重
    Array.from(new Set(arr))
    
    • of() 將一組值轉換成數組,類似於聲明數組
    • find(callback) 找到第一個符合條件的數組成員 返回數組
    • findIndex(callback) 找到第一個符合條件的數組成員的索引值 返回number
    • fill(target, start, end) 使用給定的值,填充一個數組,ps:填充完後會改變原數組

字符串

  • 字符方法

    • chartAt(num) 返回字符串 中下標爲 num 的字符,如果參數超出該範圍,返回空字符串,如果沒有參數,返回位置爲0的字符;
    • charCodeAt(num) 同上,返回 字符編碼而不是字符
  • 字符串操作方法

    • substring(i, j) 返回從 i到 j 的數據,不包括j 不改變原數據
    • substr(i, l) 返回從i開始,長度爲l的數據 不改變原數據
    const s = 'asasdadsadasd'
    s.substr(1,4)    // sasd
    s.substring(2,5) // asd
    
    
  • 字符串位置方法

    • indexOf(),參數爲子字符串,從左至右查找,返回子字符串位置,如果沒找到該子字符串,返回-1。
    • lastIndexOf(),參數爲子字符串,從右至左查找,返回子字符串位置,如果沒找到該子字符串,返回-1。
  • 大小寫轉換

    • toLowerCase() ,創建原字符串的小寫副本
    • toUpperCase() ,創建原字符串的大寫副本
  • 其他方法

    • trim()方法 該方法創建一個字符串的副本,刪除前置和後綴的所有空格。
    • match() – 檢查一個字符串是否匹配一個正則表達式。
    • replace() – 用來查找匹配一個正則表達式的字符串,然後使用新字符串代替匹配的字符串。
    • search() – 執行一個正則表達式匹配查找。如查找成功,返回字符串中匹配的索引值。否則返回 -1
    • split() 通過將字符串劃分成子串,將一個字符串做成一個字符串數組
    • join() 將分割的字符數組連接成字符串,參數爲連接的分隔符,默認爲逗號
    console.log(str1.split('').reverse().join(''));   //字符串反轉
    

通用方法

  • concat(a1, a2) 不改變原數據的值
    • 連接兩個數組 返回值爲連接後的新數組
    • 連接多個字符串,返回值爲連接後的新字符串
  • slice(i, j) 截取 從 i 到 j,不會改變原數據,不包括 j

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章