數組與字符串方法與相互轉換

1. 數組轉換字符串 join('') 或toString() [1,2,3,4] => '1234'

注意:javascript

  • 返回字符串,不改變原有數組
  • toString()參數可無限嵌套數組
let a = [1,2,3];  
a.join(); //'1,2,3' 不傳參數會添加逗號
a.join(''); //'123'

a.toString(); //'1,2,3'
['a','b','c'].toString(); //'a,b,c'
[1,[2,'c']].toString(); //'1,2,c'
複製代碼

2. 字符串轉換爲數組 split('') '1234' => ['1','2','3','4']

let a = '123';
a.split(); //['123'] 不傳參數會做爲一個值
a.split(''); //['1','2','3']
複製代碼

3.數組反轉 reverse() [1,2,3,4] => [4,3,2,1]

注意:原有數組被修改java

let a = [1,2,3,4];
a.reverse(); //[4,3,2,1]
複製代碼

4. 數組排序 sort()

注意:數組

  • 原有數組被修改
  • 無參數元素按照轉換爲的字符串的各個字符的Unicode位點進行排序
  • 當sort參數爲函數時
    • return 小於0:第一個參數在前,第二個參數在後
    • return 等於0:位置不變
    • return 大於0:第一個參數在後,第二個參數在前
  • undefined元素排在數組的最後
let a = [33,4,1111,222];
let b = ['b', 'c', 'a'];
b.sort(); //['a','b','c']
a.sort(); //[1111,222,33,4]
a.sort((a,b) = > {
    return a-b;//[4,33,222,1111] a比b大 返回值大於0 a放在後面 值越大越靠後
})
a.sort((a,b) => {
    return b-a;//[1111,222,33,4] b比a大 返回值大於0 a放在後面 值越小越靠後
})
複製代碼

5. 拼接數組 concat()

注意:函數

  • 原有數組不被修改,會返回一個新的數組
  • concat能夠添加過個參數,若參數中有數組,會自動拼接數組中的元素
  • 若參數是數組,數組中又嵌套數組,concat不會扁平化遞歸,會拼接數組中的數組元素
let a = [1,2,3];
a.concat(4,5); // [1,2,3,4,5]
a.concat([4,5]) // [1,2,3,4,5]
a.concat([4,5], [6,7]) // [1,2,3,4,5,6,7]
a.concat(4,[5,[6,7]]) //[1,2,3,4,5,[6,7]]
複製代碼

6.獲取數組的子數組 slice()

注意:spa

  • 原有數組不改變,返回子數組
  • slice(startIndex,endIndex) 從startIndex到endIndex-1位置的子數組
  • slice(startIndex,0) 從startIndex到數組結尾
  • slice(startIndex,-2) 從startIndex到數組結尾到倒數第二個位置,-1指定最後一個元素
let a = [1,2,3,4,5];
a.slice(0,3); // [1,2,3]
a.slice(3); // [4,5]
a.slice(1,-1) // [2,3,4]
a.slice(-3,-2) // [3]
複製代碼

7. 在數組中刪除或插入元素 splice()

注意:code

  • 原有數組被修改,返回被刪除的元素
  • splice(index, num, item1, item2,...)
    • index:插入或刪除的起始位置(包含);
    • num:插入或刪除的元素個數,num省略則index後全部元素均被刪除
    • item1,item2,...:須要插入的元素,新元素從index開始
let a = [1,2,3,4,5,6,7,8];
a.splice(4); // 從index=4刪除到結尾,返回[5,6,7,8] a=>[1,2,3,4]
//此時a = [1,2,3,4]
a.splice(1,2); // 從index=1刪除2個元素 返回[2,3] a=> [1,4]
//此時 a = [1,4]
a.splice(1,1) // 從index=1刪除1個元素 返回[4] a=>[1]

let b = [1,2,3,4,5];
b.splice(2,0,'a','b'); // 從index=2刪除0個元素並插入新元素,返回[] b=>[1,2,'a','b',3,4,5]
// 此時b = [1,2,'a','b',3,4,5]
b.splice(2,2,[1,2],3) //從index=2開始刪除2個元素,插入[1,2],3 返回['a', 'b'] b=>[1,2,[1,2],3,3,4,5]
複製代碼

8. 數組尾部添加或刪除元素 push() pop()

注意:排序

  • 原有數組會被修改
  • push返回新數組的長度,pop返回刪除的值
  • 入參是數組類型,不會解析,當作一個元素
let stack = [];
stack.push(1,2); //返回新數組長度2 stack=>[1,2]
stack.pop(); //返回被刪除的元素值2 stack=>[1]
stack.push(3); //返回新數組長度2 stack=>[1,3]
stack.pop(); //返回被刪除的元素3 stack=>[1]
stack.push([4,5]); //返回新數組長度2 stack=>[1,[4,5]]
stack.pop(); //返回被刪除的元素[4,5] stack=>[1]
複製代碼

9. 數組頭部添加或刪除元素 unshift() shift()

注意:遞歸

  • 原有數組會被修改
  • unshift()添加一個或多個元素,返回新數組長度
  • shift()刪除第一個元素,返回刪除的元素
    • 入參是數組類型,不會解析,當作一個元素
let a = [];
a.unshift(1); //返回新數組長度1 a=>[1]
a.unshift(22); //返回新數組長度2 a=>[22,1]
a.shift(); //返回刪除的元素22 a=> [1]
a.unshift(3,[4,5]); //返回新數組長度3 a=>[3,[4,5],1]
a.shift(); //返回刪除的元素3 a=>[[4,5],1]
a.shift(); //返回刪除的元素[4,5] a=>[1]
複製代碼
相關文章
相關標籤/搜索