1. 程式人生 > >陣列的使用(2) ---迭代器方法

陣列的使用(2) ---迭代器方法

迭代器方法:指對陣列中的每個元素都應用一個函式,可以返回一個值、一組值、或者一個新陣列。

  • 不生成新陣列的迭代器方法
    ① forEach() 接收一個函式作為引數,對於陣列中的每個元素都使用該函式
var num = [1,2,3,4,5,6,7]
function sq(num){
    console.log(num*num);
}
num.forEach(sq);

這裡寫圖片描述
② every() 引數為一個返回值為布林型別的函式,對陣列中的每個元素都使用該函式,如果對於所有元素,該函式都返回true ,則該方法返回true
③ some() 引數為一個返回值為布林型別的函式,對陣列中的每個元素都使用該函式,只要有一個元素返回true ,則該方法返回true

var num = [1,2,3,4,5,6,7]
var num2 = [2,4,6]
function isEven(num){
    if(num % 2 == 0) return true;
}
console.log(num.every(isEven)) //false
console.log(num2.every(isEven)) //true
console.log(num.some(isEven))//true

④ reduce() 接收一個函式,返回一個值,該方法會從一個累加值開始,不斷對累加值和陣列中的後續元素呼叫該函式,直到陣列中的最後一個元素,最後返回累加值。

var
num = [1,2,3,4,5,6,7] function addSum(sum,num){ return sum+num; } console.log(num.reduce(addSum)) //28
  • 生成新陣列的迭代器方法

    ①map(): 功能與 forEach()類似,但map()返回一個新陣列,該陣列的元素時對原有元素應用某個函式之後得到的結果。

var num = [1,2,3,4,5,6,7]
function add5(num){
    return num+=5;
}
var num1 = num.map(add5);
console.log(num1) //[ 6, 7, 8, 9, 10, 11, 12 ]

②filter():返回結果為true的所有元素。

var num = [1,2,3,4,5,6,7]
function isEven(num){
    if(num % 2 == 0) return true;
}
console.log(num.filter(isEven)) //[ 2, 4, 6 ]