数组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;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容