es5新增的陣列方法

2021-09-10 04:47:51 字數 2893 閱讀 3275

常用的陣列元素的迭代方法。

1. foreach()方法

foreach()方法的功能是迴圈遍歷陣列中的每乙個元素;

foreach()方法會接收乙個函式;

這個函式包含三個形參,分別為:item, index, array, 用不到時可以不寫

item 表示每次迭代的元素

index 表示每次迭代元素的下標

array 表示原陣列

var arr = [20,13,11,8,0,11];

var min = arr[0]; //假設陣列的第乙個元素的為最小值

arr.foreach(function(item,index,array)

//練習三:求陣列的最小值

if(item2. map()方法

返回乙個新陣列,新陣列是原陣列的對映;

不改變原陣列的值;

新陣列的元素值是每次函式return的返回值;

若不寫return,接收的新陣列的元素值將全為空;

var arr = [20,13,11,8,0,11];

var brr = arr.map(function(item))

3. filter()方法

過濾元素,返回乙個新陣列;

新的陣列由每次函式返回值為true對應的元素組成;

原陣列不受影響;

var arr = [20,13,11,8,0,11];

var brr =arr.filter(function(item))

4. some()方法

return返回的值只要有一項為true,最終的返回值就為true,不會繼續遍歷後邊的元素;

若沒有一項滿足返回值為true的,就返回false;

原陣列不受影響;

var arr = [20,13,11,8,0,11];

var brr = arr.some(function(item))

alert(brr); //true

5. every()方法

對陣列的每一項執行給定的函式,假如該函式每一項都返回true,最後結果才為true;

只要有一項返回值為false,最後結果就是false。且後邊的元素都不會再繼續執行函式;

原陣列不受影響;

var arr = [20,13,11,8,0,11];

var brr = arr.every(function(item))

alert(brr); //false

6.reduce()方法

收斂,返回值是最後一次函式呼叫的返回值;

不寫return時,預設返回undefined;

執行機制

一開始,prev代表陣列第乙個元素,next指向陣列第二個元素 ;

函式有個返回值,會作為下次的prev值;

當給方法第二個引數值時,prev從傳的第二個引數值開始,next從第乙個元素值開始

var arr = [1,4,5,7,8,10];

var res = arr.reduce(function(prev,next))

console.log(res);

/*分析:

一開始,prev代表陣列第乙個元素,next指向陣列第二個元素 1---4

函式有個返回值,會作為下次的prev值

4---5

4---7

4---8

4---10

*/

//應用:求陣列所有元素的和

var arr = [1,4,5,7,8,10];

var res = arr.reduce(function(prev,next))

console.log(res);

/*分析:

一開始,prev代表陣列第乙個元素,next指向陣列第二個元素 1---4

函式有個返回值,會作為下次的prev值

5---5 返回10

10---7 返回17

17---8 返回25

25---10 返回35

*/

//reduce()還可以有第二個引數

var arr = [1,4,5,7,8,10];

var res = arr.reduce(function(prev,next),100) //prev從傳的第二個引數值100開始,next從第乙個元素值開始

console.log(res);

//reduce()應用:將兩個陣列合併成乙個物件

var arr3 = ["lydia","21"];

var arr4 = ["name","age"];

arr4.reduce(function(prev,next,item),{}); //傳的第二個引數值是乙個空物件

console.log(obj);

/*第一次的prev是乙個空物件,物件的next屬性(即arr4的第乙個元素)的值為arr3的第乙個元素值

*/

7. indexof()方法

判斷乙個元素是否存在於陣列中,若不存在返回-1,若存在就返回它第一次出現的位置。

var arr = [20,13,11,8,0,11];

arr.indexof(11); //返回第乙個11的索引:2

arr.indexof(2); //返回-1

ES5 陣列方法

foreach 方法從頭至尾遍歷陣列,為每個元素呼叫指定的函式。三個引數 陣列元素 元素的索引和陣列本身。var data 1,2,3,4,5 var sum 0 data.foreach function val sum 15 data.foreach function v,i,a data 2,...

ES5陣列方法

push 從陣列最後一位新增 pop 從陣列最後一位刪除 shift 從陣列第一位刪除 unshift 從陣列第一位新增 reverse 陣列逆轉 splice 從第幾位開始,擷取長度,在切口處新增新的資料 sort 陣列排序 arr.sort function a,b 正序 return b a ...

es5 陣列方法

es5 陣列方法的擴充套件 陣列物件.foreach function item,index 陣列物件.map function item,index 返回乙個加工後的新陣列 陣列物件.filter function item,index 按指定要求過濾,返回結果為true的子陣列 示例 main ...