ECMAScript學習(二)Array陣列方法
目錄
Map集合
格式:
var new_array = arr.map(function callback(currentValue[, index[, array]]) {
// Return element for new_array
}[, thisArg])
返回值說明
The map() method creates a new array with the results of calling a provided function on every element in the calling array.
該方法會返回一個同原陣列長度一樣的一個新陣列,陣列中的每一項,就是函式呼叫後的結果
注意: map() 不會對空陣列進行檢測。
注意:map() 不會改變原始陣列。
使用
let arr = [1, 2, 3, 4, 5, 6, 7];
let a = arr.map((item, index,arr) => {
console.log(arr);//(7) [1, 2, 3, 4, 5, 6, 7]
return item * 2;
});
console.log(a);//(7) [2, 4, 6, 8, 10, 12, 14]
filter函式
形式
var newArray = arr.filter(callback(element[, index[, array]])
[, thisArg])
返回值說明:
The filter() method creates a new array with all elements that pass the test implemented by the provided function.
filter() 方法建立一個新的陣列,新陣列中的元素是通過檢查指定陣列中符合條件的所有元素。
注意: filter() 不會對空陣列進行檢測。
注意: filter() 不會改變原始陣列。
例項
let arr = [1, 2, 3, 4, 5, 6, 7];
let a = arr.filter((item, index, arr) => {
return item > 3;
});
console.log(a);//(4) [4, 5, 6, 7]
arr.every
定義
arr.every(callback(element[, index[, array]])[, thisArg])
返回值說明
The every() method tests whether all elements in the array pass the test implemented by the provided function.
陣列中的每一項執行該函式,如果每一項的函式都返回true,則該方法返回真。
every() 方法用於檢測陣列所有元素是否都符合指定條件(通過函式提供)。
every() 方法使用指定函式檢測陣列中的所有元素:
(1)如果陣列中檢測到有一個元素不滿足,則整個表示式返回 false ,且剩餘的元素不會再進行檢測。
(2)如果所有元素都滿足條件,則返回 true。
注意: every() 不會對空陣列進行檢測。
注意: every() 不會改變原始陣列。
例項
let arr = [1, 2, 3, 4, 5, 6, 7];
let a = arr.every(function(item) {
return item > 1;
});
console.log(a);//false
arr.some()
定義
arr.some(callback[, thisArg])
返回值
陣列中的每一項,執行給定函式,只要有一項返回真,那麼就返回真。
注意: some() 不會對空陣列進行檢測。
注意: some() 不會改變原始陣列。
例項
let arr = [1, 2, 3, 4, 5, 6, 7];
let a = arr.some(item => item > 6);
console.log(a);//true
arr.reduce()
歸併函式
定義
arr.reduce(callback[, initialValue])
返回值說明
reduce() 方法接收一個函式作為累加器,陣列中的每個值(從左到右)開始縮減,最終計算為一個值。
reduce() 可以作為一個高階函式,用於函式的 compose。
注意: reduce() 對於空陣列是不會執行回撥函式的。
例項
let arr = [1, 2, 3, 4, 5];
let a = arr.reduce(function(prev, item, index, arr) {
return prev + item;
});
console.log('最終結果是:' + a);//最終結果是:15
let a = arr.reduce(function(prev, item, index, arr) {
return prev + item;
}, 10);
console.log('最終結果是:' + a);//最終結果是:25
arr.filter()
定義
var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
返回值說明
filter() 方法建立一個新的陣列,新陣列中的元素是通過檢查指定陣列中符合條件的所有元素。
注意: filter() 不會對空陣列進行檢測。
注意: filter() 不會改變原始陣列。
例項
陣列去重
let arr = [2, 2, 4, 2, 1, 4, 2, 2, 2, 24, 4];
let a = arr.filter(
(item, index, arr) => arr.indexOf(item) === index
);
console.log(a);//(4) [2, 4, 1, 24]