DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 總結javascript中的六種迭代器
總結javascript中的六種迭代器
編輯:關於JavaScript     

1.forEach迭代器

forEach方法接收一個函數作為參數,對數組中每個元素使用這個函數,只調用這個函數,數組本身沒有任何變化

//forEach迭代器
function square(num){
  document.write(num + ' ' + num*num + '<br>');
}

var nums = [1,2,3,4,5,6,7,8];
nums.forEach(square);

在浏覽器中輸出的結果是:

2.every迭代器

every方法接受一個返回值為布爾類型的函數,對數組中的每個元素使用這個函數,如果對於所有的元素,該函數均返回true,則該方法返回true,否則返回false

//every迭代器
function isEven(num){
  return num % 2 == 0;
}
var nums = [2,4,6,8];
document.write(nums.every(isEven));

3.some迭代器

some方法也是接受一個返回值為布爾類型的函數,只要有一個元素使得該函數返回true,該方法就返回true

//some迭代器
function isEven(num){
  return num % 2 == 0;
}
var nums = [1,3,5,7];
document.write(nums.some(isEven));

4.reduce迭代器

reduce方法接受一個函數,返回一個值,該方法從一個累加值開始,不斷對累加值和數組中的後續元素調用該函數,知道數組中最後一個元素,最後得到返回的累加值

//reduce迭代器
function add(runningTotal, currentValue){
  return runningTotal + currentValue;
}
var nums = [1,2,3,4,5,6,7,8,9,10];
var sum = nums.reduce(add);
document.write(sum);

得到的結果是:55

reduce()函數和add()函數一起,從左到右,一次對數組中的元素求和,執行過程如下:

add(1,2) -> 3
add(3,3) -> 6
add(6,4) -> 10
add(10,5) -> 15
add(15,6) -> 21
add(21,7) -> 28
add(28,8) -> 36
add(36,9) -> 45
add(45,10) -> 55

reduce方法也可以用來將數組中的元素鏈接成一個長的字符串,代碼如下

//使用reduce連接數組元素
function concat(accumulatedString, item){
  return accumulatedString + item;
}
var words = ['the ', 'quick ', 'brown ', 'fox'];
var sentence = words.reduce(concat);
document.write(sentence);

最後輸出結果如下:

javascript還提供了reduceRight方法,和Reduce方法不同,它是從右到左執行,如下:

//使用reduce連接數組元素
function concat(accumulatedString, item){
  return accumulatedString + item;
}
var words = ['the ', 'quick ', 'brown ', 'fox '];
var sentence = words.reduceRight(concat);
document.write(sentence);

執行結果如下:


5.map迭代器

map迭代器和forEach有些類似,但是map會改變數組,生成新的數組,如下代碼

//使用map迭代器生成新的數組
function curve(grade){
  return grade+5;
}
var grades = [77,65,81,92,83];
var newgrades = grades.map(curve);
document.write(newgrades);

輸出結果:

6.fiter迭代器

和every迭代器類似,傳入一個返回值為布爾類型的函數,和every方法不同的是,當數組中所有元素對應該函數返回的結果均為true時,該方法並不返回true,而是返回一個新的數組,該數組包含對應函數返回結果為true的元素,代碼如下

function isEven(num){
  return num % 2 == 0;
}

function isOdd(num){
  return num % 2 != 0;
}

var nums = [];
for (var i=0; i<20; i++) {
  nums[i] = i+1;
}
var evens = nums.filter(isEven);
document.write(evens);
document.write('<br>');
var odds = nums.filter(isOdd);
document.write(odds);

輸出結果如下:

總結

以上就是關於javascript中的六種迭代器的總結,希望本文的內容對大家學習工作能有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved