陣列迭代
阿新 • • 發佈:2021-07-22
forEach(value,index,array)方法從頭到尾遍歷陣列,為每個元素呼叫指定的函式.
用法:
//forEach 迭代(遍歷)陣列 var arr1 = [1,2,3] arr1.forEach(function(value,index,array) { //引數1:元素值 引數2:索引值 引數3:陣列本身 console.log('陣列元素' + value); console.log('陣列元素的索引號' + index); console.log('陣列本身' + array); })// 例子 //計算陣列的和 var arr2 = [1,2,3,4]; var sum = 0; arr2.forEach(function(value,index,array){ sum += value; }) console.log(sum); //陣列每個元素加1 var arr3 = [1,2,3,4,5]; arr3.forEach(function(value,index,array){ arr3[index]= value + 1; }) console.log(arr3);
map()方法和forEach呼叫函式的方式一樣,但是map有返回值,且生成的是一個新的陣列
用法:
//原陣列通過呼叫函式後得到的數值存入新的陣列 // map()和forEach函式呼叫方式一樣,但是map有返回值returnvalue*10; }) console.log(newary); //10, 20, 30
varary=[1,2,3];
varnewary=ary.map(function(value){
filter()方法返回的陣列元素是呼叫該方法陣列的一個子集,傳遞的函式是用來邏輯判斷的,返回true或false,如果元素滿足條件,則返回到這個子集陣列中
用法:
//filter 篩選陣列 var arr = [12,66,4,88] var newArr = arr.filter(function(value,index,array){ return value >=20; }) console.log(newArr); //66,88 //返回的是滿足所有條件的元素 生成一個數組
//注意:map和filter的區別 //當map中呼叫的函式體變為條件語句 value>=20時候 var arr2 = [12,66,4,88] var newArr2 = arr2.map(function(value,index,array){ return value >=20; }) console.log(newArr2); //false,true,false,true
every()方法對陣列的邏輯判定:陣列中所有元素滿足所傳遞的函式,則返回true,否則返回false; (這裡只要遇到滿足false條件的元素就會終止迴圈)
用法:
var ary1 = [1,2,3,4,5] var flag = ary1.every(function(value){ return value>3; }) console.log(flag); //false 因為有1和2不滿足大於3,所以返回false var ary2 = [1,2,3,4,5] var flag = ary2.every(function(value){ return value>0; }) console.log(flag); //true 元素都滿足大於0,所以返回true
some()方法也是對陣列的邏輯判定:陣列中有一個元素滿足所傳遞的函式,則返回true,(這裡只要遇到滿足true的就會終止迴圈);一個都不滿足則返回false
var ary1 = [1,2,3,4,5] var flag = ary1.some(function(value){ return value>3; }) console.log(flag); //true 元素中4,5滿足條件,所以返回true var ary2 = [1,2,3,4,5] var flag =ary2.some(function(value){ return value>6; }) console.log(flag); //false 元素中沒有滿足條件的,所以返回false