陣列的使用(2) ---迭代器方法
阿新 • • 發佈:2018-12-25
迭代器方法:指對陣列中的每個元素都應用一個函式,可以返回一個值、一組值、或者一個新陣列。
- 不生成新陣列的迭代器方法
① 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 ]