關於js中操做數組的一些方法

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

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

1.鎖定數組的長度(讓數組的長度變成只讀)。javascript

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()方法,返回一個字符串html

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()方法,返回逆序數組java

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。post

4.Array.concat(),建立並返回一個新數組。spa

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]

  這個方法還能夠用來複制數組。code

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()方法,返回指定數組的片斷或者子數組。不會改變原數組htm

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()方法,用來刪除或插入元素,會修改原數組!blog

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()從頭到尾搜索,然後者則是反向搜索。

相關文章
相關標籤/搜索