1. 程式人生 > >關於js中運算元組的一些方法

關於js中運算元組的一些方法

網上找的通篇看了一遍講的很透收藏了!

 轉自(https://www.cnblogs.com/blogs-8888/p/6518683.html)

1.鎖定陣列的長度(讓陣列的長度變成只讀)。

1 2 3 4 5 6 var  a = [1,2,3]   //定義一個數組<br> Object.defineProperty(a, "length" ,{     writable: false
})   //將a陣列的長度屬性設為只讀<br> a.length = 0   //將a的長度改為0<br> console.log(a.length);   //列印a陣列的長度,還是3

  

2.Array.join()方法,返回一個字串

1 2 3 4 5 6 7 var  a = [1,2,3];   var  b = a.join( "" );   console.log(a);  //[1, 2, 3],原陣列不改變   console.log(b);  //"123",變成字串

  

3.Array.reverse()方法,返回逆序陣列

1 2 3 4 5 var  a = [1,2,3];   a.reverse();   console.log(a);  //直接改變a陣列的值 返回的是[3,2,1]

 

4.Array.sort()方法,返回排序後的陣列。如果陣列包含undefined,會被排到陣列的尾部。如果不帶引數的呼叫sort(),陣列元素以字母表順序排序。

1 2 3 4 5 var  a = [2,33,1111,444];               a.sort()               console.log(a);  //返回的結果是[1111, 2, 33, 444]

  如果要數字從小到大排列:

1 2 3 4 5 6 7 var  a = [2,33,1111,444];               a.sort( function  (a,b) {      return  a-b })               console.log(a);  //[2, 33, 444, 1111]

  反之,如果從大到小排列,return b-a。

4.Array.concat(),建立並返回一個新陣列。

1 2 3 4 5 6 7 8 9 10 11 var  a = [1,2,3];               var  b = a.concat(4,5);               var  c = a.concat([4,5]);               console.log(a);  //返回的還是[1,2,3]   console.log(b);  //返回[1,2,3,4,5]   console.log(c);   //返回[1,2,3,4,5]

  這個方法還可以用來複制陣列。

1 2 3 4 5 6 7 var  a = [1,2,3];               var  b = a.concat();                       console.log(a);  //返回[1,2,3]   console.log(b);  //返回[1,2,3]

  

5.Array.slice()方法,返回指定陣列的片段或者子陣列。不會改變原陣列

1 2 3 4 5 6 7 8 var  a = [1,2,3,4,5];<br> a.slice(0,3);  //返回[1,2,3] 第一個引數是擷取開始的位置(包括),第二個引數是擷取結束的位置(不包括)               a.slice(3);  //返回[4,5]               a.slice(1,-1);  //返回[2,3,4] 負數表示倒數               console.log(a);  //返回[1,2,3,4,5]

  

6.Array.splice()方法,用來刪除或插入元素,會修改原陣列!

1 2 3 4 5 6 7 var  a = [1,2,3,4,5,6,7,8];               var  b = a.splice(1,2);  //第一個引數是擷取的起始位置(包括),第二個引數是擷取的個數,之後的引數就是新增在元陣列的新值               console.log(a);  //返回[1, 4, 5, 6, 7, 8]               console.log(b);  //返回[2, 3]

  

7.push()方法與pop()方法

push()方法在陣列的尾部新增一個或者多個元素,並返回陣列的新長度。注意的是,改變的是原陣列的值,返回的是新陣列的長度。

pop()方法刪除陣列的最後一個元素,並返回它的刪除值。也是改變原陣列,返回的是刪除的值。

 

8.unshift()方法與shift()方法

unshift()方法類似於push()不同的是,他是在陣列頭部新增,其他都一樣

shift()方法則類比pop()方法。

 

9.toString()和toLocaleString()

toString()方法將每個元素轉化為字串,類似於不傳參的join()方法。

toLocaleString()方法是toString()的本地化版本。

 

10.forEach()方法,從頭至尾遍歷陣列,為每個元素呼叫指定的函式。

1 2 3 4 5 6 7 8 9 var  a = [1,2,3,4,5];               var  sum = 0;               a.forEach( function  (value) {      sum += value })               console.log(sum);  //sum = 15

  

11.map()方法

和forEach()類似,呼叫陣列的每個元素傳遞給指定函式,並返回一個數組,所以它和forEach()的區別在於,有一個返回值。不修改原陣列,返回的陣列長度和原陣列相同

1 2 3 4 5 6 7 var  a = [1,2,3,4,5];               var  b = a.map( function  (value) {      return  value+1 })               console.log(b);  //返回[2,3,4,5,6]

  

12.filter()方法,返回的是呼叫陣列的一個子集。

1 2 3 4 5 6 7 var  a = [1,2,3,4,5];               var  b = a.filter( function  (value) {      return  value > 3 })               console.log(b);  //返回[4,5]

  注意:如果使用map()方法,返回的是[false, false, false, true, true]

 filter()會跳過稀疏陣列中缺少的元素,他的返回陣列總是稠密的。所以可以用一下方法來壓縮稀疏陣列的空缺。

1 2 3 4 5 6 7 var  a = [1,2,,,5];               var  b = a.filter( function  (value) {      return  true })                console.log(b);  //返回[1,2,5]

  

13.every()和some()

every()方法是隻有陣列中所以元素都滿足某個條件才會返回true;some()方法是隻要有滿足條件的值,就返回true。

以every()方法為例

1 2 3 4 5 6 7 8 9 var  a = [1,2,3,4,5];               a.every( function  (value) {      return  value < 10 })  //true               a.every( function  (value) {      return  value % 2 === 0 })  //false

  

14.indexOf()和lastIndexOf()

這兩個方法都是用來搜尋整個陣列中具有給定值的元素,返回找到的第一個元素的索引,如果沒找到,則返回-1。

區別在於indexOf()從頭至尾搜尋,而後者則是反向搜尋。

1.鎖定陣列的長度(讓陣列的長度變成只讀)。

1 2 3 4 5 6 var  a = [1,2,3]   //定義一個數組<br> Object.defineProperty(a, "length" ,{     writable: false })   //將a陣列的長度屬性設為只讀<br> a.length = 0   //將a的長度改為0<br> console.log(a.length);   //列印a陣列的長度,還是3

  

2.Array.join()方法,返回一個字串

1 2 3 4 5 6 7 var  a = [1,2,3];   var  b = a.join( "" );   console.log(a);  //[1, 2, 3],原陣列不改變   console.log(b);  //"123",變成字串

  

3.Array.reverse()方法,返回逆序陣列

1 2 3 4 5 var  a = [1,2,3];   a.reverse();   console.log(a);  //直接改變a陣列的值 返回的是[3,2,1]

 

4.Array.sort()方法,返回排序後的陣列。如果陣列包含undefined,會被排到陣列的尾部。如果不帶引數的呼叫sort(),陣列元素以字母表順序排序。

1 2 3 4 5 var  a = [2,33,1111,444];               a.sort()               console.log(a);  //返回的結果是[1111, 2, 33, 444]

  如果要數字從小到大排列:

1 2 3 4 5 6 7 var  a = [2,33,1111,444];               a.sort( function  (a,b) {      return  a-b })               console.log(a);  //[2, 33, 444, 1111]

  反之,如果從大到小排列,return b-a。

4.Array.concat(),建立並返回一個新陣列。

1 2 3 4 5 6 7 8 9 10 11 var  a = [1,2,3];               var  b = a.concat(4,5);               var  c = a.concat([4,5]);               console.log(a);  //返回的還是[1,2,3]   console.log(b);  //返回[1,2,3,4,5]   console.log(c);   //返回[1,2,3,4,5]

  這個方法還可以用來複制陣列。

1 2 3 4 5 6 7 var  a = [1,2,3];               var  b = a.concat();                       console.log(a);  //返回[1,2,3]   console.log(b);  //返回[1,2,3]

  

5.Array.slice()方法,返回指定陣列的片段或者子陣列。不會改變原陣列

1 2 3 4 5 6 7 8 var  a = [1,2,3,4,5];<br> a.slice(0,3);  //返回[1,2,3] 第一個引數是擷取開始的位置(包括),第二個引數是擷取結束的位置(不包括)               a.slice(3);  //返回[4,5]               a.slice(1,-1);  //返回[2,3,4] 負數表示倒數               console.log(a);  //返回[1,2,3,4,5]

  

6.Array.splice()方法,用來刪除或插入元素,會修改原陣列!

1 2 3 4 5 6 7 var  a = [1,2,3,4,5,6,7,8];               var  b = a.splice(1,2);  //第一個引數是擷取的起始位置(包括),第二個引數是擷取的個數,之後的引數就是新增在元陣列的新值               console.log(a);  //返回[1, 4, 5, 6, 7, 8]               console.log(b);  //返回[2, 3]

  

7.push()方法與pop()方法

push()方法在陣列的尾部新增一個或者多個元素,並返回陣列的新長度。注意的是,改變的是原陣列的值,返回的是新陣列的長度。

pop()方法刪除陣列的最後一個元素,並返回它的刪除值。也是改變原陣列,返回的是刪除的值。

 

8.unshift()方法與shift()方法

unshift()方法類似於push()不同的是,他是在陣列頭部新增,其他都一樣

shift()方法則類比pop()方法。

 

9.toString()和toLocaleString()

toString()方法將每個元素轉化為字串,類似於不傳參的join()方法。

toLocaleString()方法是toString()的本地化版本。

 

10.forEach()方法,從頭至尾遍歷陣列,為每個元素呼叫指定的函式。

1 2 3 4 5 6 7 8 9 var  a = [1,2,3,4,5];               var  sum = 0;               a.forEach( function  (value) {      sum += value })               console.log(sum);  //sum = 15

  

11.map()方法

和forEach()類似,呼叫陣列的每個元素傳遞給指定函式,並返回一個數組,所以它和forEach()的區別在於,有一個返回值。不修改原陣列,返回的陣列長度和原陣列相同

1 2 3 4 5 6 7 var  a = [1,2,3,4,5];               var  b = a.map( function  (value) {      return  value+1 })               console.log(b);  //返回[2,3,4,5,6]

  

12.filter()方法,返回的是呼叫陣列的一個子集。

1 2 3 4 5 6 7 var  a = [1,2,3,4,5];          &nb