您的位置:首页> 前端教程> JS教程
文章导航

JavaScript every()

2018-9-8 00:55| 作者: admin| 查看: 1772| 评论: 0|来自: 蚂蚁部落

此方法可以结合some方法一起学习,ES5新增此方法。

some判断数组中是否有满足指定条件的元素,任何一个元素满足条件即可。

从方法名称也能猜测出它们的区别,every方法非常严格,必须保证每一个元素都满足才行。

更多内容可以参阅JavaScript Array 数组一章节。

语法结构:

[JavaScript] 纯文本查看 复制代码
array.every(callbackfn[, thisArg])

every方法会以索引升序方式对数组元素执行回调函数callbackfn。

如果对所有的元素执行回调函数,回调函数的返回值为true,那么every方法返回值为true,否则返回false。

特别说明:回调函数的返回值你不一定非要是true本身,只要可以转换为true即可。

参数解析:

(1).callbackfn:必需,回调函数,对数组的每一个元素执行一次回调函数,直到回调函数返回false。         

          回调函数可以有三个参数:

            第一个参数是当前数组元素值。

            第二个参数是当前数组元素的索引。

            第三个参数就是数组对象本身。

(2).thisArg:可选,规定回调函数中this所指向的对象,省略,this指向window对象。

浏览器兼容:

(1).IE9+浏览器支持此方法。

(2).edge浏览器支持此方法。

(3).谷歌浏览器支持此方法。

(4).火狐浏览器支持此方法。

(5).opera浏览器支持此方法。

(6).safria浏览器支持此方法。

代码实例:

[JavaScript] 纯文本查看 复制代码运行代码
function CheckIfEven(value, index){
  console.log(value);
  if(value % 2 == 0){
    return true;
  }       
}
let numbers=[2, 4, 5, 6, 8];
 
if(numbers.every(CheckIfEven)){
  console.log("全都是偶数");
}
else{
  console.log("不全都是偶数");
}

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/08/005714l6zsznlxrtnwrilt.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

代码分析如下:

(1).every方法传递一个回调函数。

(2).回调函数会以升序方式执行数组中的元素,直到回调函数返回false,否则直到数组结尾。

(3).上述代码中,回调函数可以判断数组元素是否是偶数,如果是偶数则返回true,否则返回false。

(4).数组第三个元素5,它不是偶数,回调函数返回false,那么就终止every方法的执行,every返回false。

[JavaScript] 纯文本查看 复制代码运行代码
function CheckIfEven(value, index){
  console.log(value);
  if(value % 2 == 0){
    return "蚂蚁部落";
  }       
}
let numbers=[2, 4, 5, 6, 8];
 
if(numbers.every(CheckIfEven)){
  console.log("全都是偶数");
}
else{
  console.log("不全都是偶数");
}

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/08/005758nwxwi3ukasse2www.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

回到函数的返回值没有必要非得是true本身,只要可以转换为true即可,对于false也是如此。

[JavaScript] 纯文本查看 复制代码运行代码
let obj={
  num:3
}
function CheckIfEven(value, index){
  console.log(value);
  if(value*this.num % 2 == 0){
    return "蚂蚁部落";
  }       
}
let numbers=[2, 4, 5, 6, 8];
 
if(numbers.every(CheckIfEven,obj)){
  console.log("全都是偶数");
}
else{
  console.log("不全都是偶数");
}

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/08/005843grhrhdbbhir9p7g7.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

为every方法传递第二个参数,那么回调函数的this就会指向此对象。

1

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

上一篇:Object.freeze()下一篇:JavaScript sort()

最新评论

返回顶部