1. 程式人生 > >ECMAScript學習(二)Array陣列方法

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]