1. 程式人生 > 其它 >陣列迭代

陣列迭代

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有返回值
varary=[1,2,3];
varnewary=ary.map(function(value){
returnvalue*10; })      console.log(newary);  //10, 20, 30

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