Javascript處理數組的方法


一 迭代方法

ES5為數組定義了5個迭代方法,這些方法大大方便了處理數組的任務,支持這些方法的瀏覽器有 IE9+,Firefox2+,Safari3+,Opera9.5+和Chrome。

1 every

對數組中每一項進行給定函數,如果每一項都返回true,則返回true;

var numbers = [1,2,3,4,5,4,3,2,1];

var everyResult = numbers.every(function(item,index,array){
    return item>2;
});

alert(everyResult);   //false

2 some

對數組中每一項進行給定函數,如果任意一項都返回true,則返回true;

var numbers = [1,2,3,4,5,4,3,2,1];

var everyResult = numbers.some(function(item,index,array){
    return item>2;
});

alert(everyResult);   //true

3 filter

對數組中每一項進行給定函數,返回該函數會返回true的項組成的數組;

var numbers = [1,2,3,4,5,4,3,2,1];

var everyResult = numbers.filter(function(item,index,array){
    return item>2;
});

alert(everyResult);   //  [3,4,5,4,3]

4 map

對數組中每一項進行給定函數,返回每次函數調用的結果組成的數組

var numbers = [1,2,3,4,5,4,3,2,1];

var everyResult = numbers.map(function(item,index,array){
    return item*2;
});

alert(everyResult);   //  [2, 4, 6, 8, 10, 8, 6, 4, 2]

5 forEach

對數組中每一項進行給定函數,沒有返回值,和for循環類似

var numbers = [1,2,3,4,5,4,3,2,1];

numbers.forEach(function(item,index,array){
    if(item!=2){
        numbers.splice(index,1,2);
    }
});

alert(numbers);   //  [2, 2, 2, 2, 2, 2, 2, 2, 2]

二 歸並方法

ES5新增了兩個歸並數組的方法:reduce()和reduceRight()。這兩個方法迭代數組所有項,然后構建一個最終返回的值。reduce從左到右,reduceRight從右到左。

var values = [1,2,3,4,5];

var sum = values.reduce(function(prev,cur,index,array){
    return prev + cur;
});
alert(sum); //15

reduce()函數接受四個參數;前一個值、當前值、index和數組對象。這個函數返回的任何值都會作為第一個參數自動傳給下一項。第一次迭代發生在第二項上,因此第一個參數是數組的第一項,第二個參數是數組的第二項。

三 檢測數組

ES3的方法:instanceof

var values = [1,2,3];
if(values instanceof Array){
    //對數組進行某些操作
}

ES5的方法:Array.isArray

var values = [1,2,3];
if(Array.isArray(values)){
    //對數組進行某些操作
}

四 轉換方法

1 toLocaleString() toString() valueOf()

2 join() 將數組轉換為字符串,且用分隔符分割

var colors = [1,2,3];
alert(colors.join("|"));  // 1|2|3

五 棧方法

棧方法是指Last-In-First-Out后進先出

push() 從數組末尾添加
pop()  從數組末尾移除

六 隊列方法

隊列方法是First-In-First-Out先進先出

unshift()  從數組前端添加
shift()    從數組前端移除

七 重排序方法

reverse()  反轉數組
sort()     排序
var values = [0,1,5,10,15];
values.sort(function(a,b){
    return b-a;
});
console.log(values);  //[15, 10, 5, 1, 0]

八 操作方法

1 concat() 用於復制或者從尾部添加–>創建新數組

先創建一個當前數組的副本,然后jiang將接到的數組添加到末尾,返回新的數組。如果沒有傳參數,直接復制返回新構建的數組。

var values = [1,2,3];
var v1 = values.concat();
var v2 = values.concat(4);

console.log(values);  //[1,2,3]
console.log(v1);      //[1,2,3]
console.log(v2);      //[1,2,3,4]

2 slice() 用於復制或截取數組–>創建新數組

截取當前數組的一部分創建一個新數組。可以接受一個或者兩個參數,只有一個參數時返回指定位置到尾部的數組。兩個參數時,返回指定位置到結束位置之前但不包括結束位置的數組。

var values = [1,2,3];
var v1 = values.slice();
var v2 = values.slice(1);
var v3 = values.slice(1,3);

console.log(values);  //[1,2,3]
console.log(v1);      //[1,2,3]
console.log(v2);      //[2,3]
console.log(v3);      //[2,3]

3 splice() 用於刪除、插入、替換,號稱最強大的數組方法

3.1 刪除:可以刪除任意數量的項,需要兩個參數,要刪除的第一項的位置和要刪除的項數。

var values = [1,2,3,4,5,6];
var v = values.splice(0,2);

console.log(values);  //[3,4,5,6]
console.log(v);       //[1,2]

3.2 插入和替換:至少三個參數,第一個是起始位置,第二個是要刪除的項,第三個及以后shi yao是要插入或替換的值。

插入demo:
var values = [1,2,3,4,5,6];
var v1 = values.splice(1,0,1,1,1);

console.log(values);  //[1,1,1,1,2,3,4,5,6]
console.log(v1);      //[]

替換demo:
var values = [1,2,3,4,5,6];
var v1 = values.splice(1,2,1,1,1);

console.log(values);  //[1,1,1,1,4,5,6]
console.log(v1);       //[2,3]

九 位置方法

var values = [1,2,3,4,5];
indexOf() 從頭找指定項的位置
var v1 = values.indexOf(3);

lastIndexOf() 從后往前查位置
var v2 = values.lastIndexOf(3);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM