数组every 方法

数组every 方法

Array.prototype.every(callback[,thisArg]); 


【功能】

              依次迭代数组中的元素,如果符合callback中的规则,返回true,否则返回false;

               如果为false,则跳出程序,并返回false。可以通过该方法判断数组中元素是                   否符合指定的规则。


every 接受两个参数,第一个是回调函数,第二个控制回调函数中this的指向;

1.callback(item,index,arr);

接受3个参数,第一个‘item’,为当前迭代的数组中的元素,‘index’为当前迭代元素的下标,‘arr’为原数组;

2.thisArg

默认callback中的this是指向window的,可以通过设置every的第二个参数,改变callback中this的指向;

3.案例 

    let new_arr = [1,2,6,3,4,5];

    let res = new_arr.every(function(item,index,arr){

                   console.log(this);   //window

                   return item<1;

         });

    console.log(res);//false

该案例中,数组第二个元素为2, 不符合item<1的条件,所以会返回false,并且终止运行程序,下方输出res结果为Boolean型,false。

其中只设置了every的第一个参数,没有设置第二个参数,因此第一个参数(callback会回调函数)中的this会指向window对象。


    let new_arr = [1,2,6,3,4,5];

    let res = new_arr.every(function(item,index,arr){

                   console.log(this);   //new_arr

                    return item<10;

         },new_arr);

    console.log(res);//true

而这个案例中,判断的条件是item<10,数组中最大的值为6,符合条件,所有res会是Boolean型的true;

由于设置了第二个参数,因此会更改回调函数中的this指向,此时this指向new_arr;

你可能感兴趣的:(数组every 方法)