js這四個方法不會對空數組進行檢測,也不會改變原始數組
find()方法主要用來返回數組中符合條件的第一個元素(沒有的話,返回undefined)
//語法 array.find(function(value, index, arr),thisValue)
var Array = [1,2,3,4,5,6,7]; var result = Array.find(function(value){ return value > 5; //條件 }); console.log(result);//6 console.log(Array);//[1,2,3,4,5,6,7]
filter()方法主要用來篩選數組中符合條件的所有元素,並且放在一個新數組中,如果沒有,返回一個空數組
//語法 array.filter(function(value, index, arr),thisValue)
var Array= [1,2,3,4,5,6,7]; var result = Array.filter(function(value){ return value>5; }); console.log(result);//[6,7] console.log(Array);//[1,2,3,4,5,6,7]
map()方法主要用來對數組中的元素調用函數進行處理,並且把處理結果放在一個新數組中返回(如果沒有返回值,新數組中的每一個元素都為undefined)
//語法 array.map(function(value, index, arr),thisValue)
var Array = [1,2,3]; var result =Array.map(function(item){ return item* 2; }); console.log(result);//[2,4,6] console.log(Array);//[1,2,3]
forEach()方法也是用於對數組中的每一個元素執行一次回調函數,但它沒有返回值(或者說它的返回值為undefined,即便我們在回調函數中寫了return語句,返回值依然為undefined)
注意: 如果forEach里有兩個參數,則第一個參數為該集合里的元素,第二個參數為集合的索引; 若只有一個參數則該參數就是遍歷數組中的一項; 不能 使用 return false 終止循環 只是終止了本次循環
var Array = [1,2,3,4,5]; var sum = 0; var res = Array.forEach(function(item,index){ sum += item; }); console.log(res); //undefined console.log(Array);//[1,2,3,4,5] console.log(sum);//15
//一般不寫返回值
Array.forEach(function(value){
sum += value; });
console.log(sum) //15
jquery中的 each
注意:如果回調函數里只有一個參數時,則為集合的索引; 如果有兩個參數,則第一個為索引,第二個該集合里的元素; 可在 方法中 return false 跳出循環
var Array= new Array(['a','b','c']); $.each(Array, function(index,item){ console.log(index); // 0,1,2 console.log(item); // a,b,c })