1. 程式人生 > >陣列:迭代方法

陣列:迭代方法

      ECMAScript5為陣列定義了5個迭代方法。每個方法都接受兩個引數:要在每一項執行的函式和(可選的)執行函式的作用域物件--影響this的值。傳入的這些方法中函式會接受三個引數:陣列項的值,該項在陣列中位置和陣列物件本身。

every():對陣列的沒一項執行給定函式,如果該函式每一項都返回true,則返回true。

filter():對陣列的每一項執行給定函式,返回該函式會返回true的項組成的陣列。

forEach():對陣列中的每一項執行給定函式,這個方法沒有返回值。

map ():對陣列中每一項執行給定函式,返回每次函式呼叫的結果組成的陣列。

some():對陣列中的每一項給定函式,如果該函式對任一項返回true

,則返回true,

以上方法都會修改陣列中包含的值。

    var numbers = [1,2,3,4,5,4,3,2,1];
    var everyResult=numbers.every(function (item,index,array) {
    	return(item>2);
    });
    alert(everyResult);   //false      every()必須沒一項都返回true 則返回true
  var someResult=numbers.some(function (item,index,array) {
	return(item>2);
   });
   alert(someResult);   //true         some()任意一項返回true 則返回true
	var filterResult=numbers.filter(function (item,index,array) {
	     return(item>2);
	});
	alert(filterResult);  // 34543  filter()利用指定的函式確定返回在陣列中包含某一項。 返回一個所有的數值都要大於2的陣列。
       var mapResult=numbers.map(function (item,index,array) {
	     return item * 2;
	});
	alert(mapResult);  //2,4,6,8,10,8,6,4,2  map()也返回一個數組。而這個陣列的每一項都是在原始陣列中的對應上執行入函式的結果。
    numbers.forEach(function(item,index,array){
    	//執行某些操作
   })     //forEach()它只是對陣列的每一項執行傳入的函式,沒有返回值。本質和for迴圈迭代陣列一樣