ES6陣列新增的幾個方法

C+ 安口木發表於2020-11-08

關於陣列中foreach() 、map()、filter()、reduce() 、 some()、every()的總結。

1.foreach()

var arr = [1,2,3,4];

arr.foreach((item,index,arr)=>{

    console.log(item);  //結果為1,2,3,4

});

//foreach遍歷陣列,無返回值,不改變原陣列,僅僅只是遍歷,常用於註冊元件、指令等等。

2.map()

var arr = [1,2,3,4];

arr.map((item,index,arr)=>{

    return item*10;  //結果為10,20,30,40

});

//map遍歷陣列,返回一個新陣列,不改變原陣列

3.filter()


var arr = [1,2,3,4];

arr.filter((item,index,arr)=>{

   return item >2; //結果為[3,4]

});

//filter過濾掉陣列中不滿足條件的值,返回一個新陣列,不改變原陣列

4.reduce()

var arr = [1,2,3,4];

arr.reduce((result,item,index,arr)=>{

  console.log(result);

  console.log(item);

  console.log(inddx);

  return result+item; 

});

//reduce讓陣列的前後兩項進行某種計算,然後返回其值,並繼續計算,不改變原陣列,返回計算的最終結果,從陣列的第二項開始遍歷。

5.some()

var arr = [1,2,3,4];

arr.some((item,index,arr)=>{

   return item > 2; //返回true

});

//遍歷陣列每一項,有一項返回true,則停止遍歷,結果返回true。不改變原陣列。

6.every()

var arr = [1,2,3,4];

arr.every((item,index,arr)=>{

   return item >1; //返回false

});

//遍歷陣列每一項,每一項返回true,最終結果為true.有一項返回false,停止遍歷,結果返回為false。不改變原陣列。

以上6個方法均為ES6語法,IE9及以上才支援。不過可以通過babel轉意支援IE低版本。
以上均不改變原陣列。
some、every返回true、false。
map、filter返回一個新陣列。
reduce讓陣列的前後兩項進行某種計算,返回最終操作的結果。
forEach 無返回值。
在這裡插入圖片描述
在ES2016裡面新增:

arr.indexOf() // 查詢指定元素是否存在,如果存在,返回下標,如果不存在返回-1
let arr = [“yang”, “wang”,“wang”, “ling”];
console.log(arr.indexOf(“yang”)) // 0

arr.includes() // 查詢指定元素是否存在,如果存在,返回true,如果不存在返回false

str.includes() // 查詢指定元素是否存在,如果存在,返回true,如果不存在返回false

例子(字串類似):
let arr = [“yang”, “wang”,“wang”, “ling”];
console.log(arr.includes(“yang”)) // true

相關文章