es5中的數組方法

es5定義了新的數組方法遍歷,映射,過濾,檢測,簡化和搜索數組。這些方法對操作數組 提供了極大的便利。es5數組 大對數方法,首先大多數方法的第一個參數 是一個函數,並且對數組的每個元素(或一些元素))調用一次該函數。大多數情況下,調用提供的函數提供三個參數:數組元素,元素索引和元素本身。通常情況下,只需要第一個參數,可忽略後兩個參數。大多數 es5數組方法的第一個參數是一個函數,第二個參數是可選的,如果有第二個參數,則調用的函數被看成是第二個參數的方法。也就是說,在調用函數式傳遞進去的第二個參數作爲他的this官架子得值來使用。es5中的數組的方法都不會修改他們調用的原始數組。當然傳遞給這些方法的函數是可以修改這些數組的。

下面介紹數組方法:
1.forEach()方法從頭遍歷數組,爲每個元素調用指定的函數。傳遞的參數作爲forEach()傳遞的函數作爲forEach.的第一個參數。然後forEach()使用三個參數調用該函數: 數組元素,元素的索引,元素本身。如果只關心數組元素的值,可以編寫只有一個參數的函數。
var data = [1,2,3,4];
var sum = 0;
data.forEach(function(value){ 

sum += value;

});

data.forEach(function(value,i,a){

a[i] = value + 1; //數組裏的每個元素都加上1;

});

 2.map()方法將調用的每個元素傳遞給指定的函數,並返回一個數組,它包含該函數的返回值。
var a = [1,2,3];
var b = a.map(function(x){

return x*x; //b得值是[1,4,9]

});

3.filter()方法返回的數組元素是調用的數組的一個子集,傳遞的函數是用來邏輯判定的,該函數返回true或false。通俗點說就是過濾器,過濾滿足條件的數組的元素。

var a = [1,2,3,4,5];
var smallValues = a.filter(function(x){

return x < 3; //[1,2]

});

var every = a.filter(function(x,i){

return i%2 == 0; //[1,3,5]

});

4,every()和some()方法是數組的邏輯判定,他們對數組元素指定的函數進行判定,返回true或false.
every()方法針對數組中的所有元素調用判定函數都返回true,它才返回true.some()方法,當且數組至少有一個元素調用判定函數返回true,它就返回true。
var a = [1,2,3,4,5,6];
a.every(function(x){return x<10 ;});//true
a.every(function(x){return x%2 === 0});//false


a.some(function(x){return x<2 ;});//true
a.some(function(x){return x%2 === 0});//true

注意:一旦every()和aome()確認返回什麼值時它們就會停止遍歷數組元素。


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