【循环系列】every循环

539 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

发现JS中的循环有好多,如果让一下说出来,感觉有些会想不起来,本次花时间来梳理一下JS中循环语句。

本系列相关文章:

  1. 【循环系列】for循环和while循环
  2. 【循环系列】for in和forEach循环
  3. 【循环系列】之map循环
  4. 【循环系列】filter和some循环 本文是本系列第5篇,关于every循环

every

some类似,但不同的是some只需要某一个元素满足条件就返回true,而every是需要数组中所有元素都满足条件才返回true,如下代码:

let ints = [1, 2, 3, 4];
let res = ints.every((val, index, array) => {
	return typeof val === 'number';
});
console.log(res);//true

上述例子中,声明了一个数组ints,通过every方法,检查ints数组中的每一个成员,当里头判断每个成员符合条件时,就返回true

下面我们来模拟封装_every

Array.prototype._every = function (fn, thisTo) {
  let res = true;
  for (let i = 0; i < this.length; i++) {
    if (!fn.call(thisTo, this[i], i, this)) {
      res = false;
      break;
    }
  }
  return res;
}
let ints = [1, 1, 1, 1];
let res = ints._every((val, index, array) => {
  return val == 1;
});
console.log(res) //true

实现!

小结一下:以上五个方法forEach/map/filter/some/every传参都是一样,可以接收两个参数,分别是循环回调函数和this指向,其中回调函数的参数分别对应数组成员的value值、下标index和原数组array

结束

以上就是every循环的相关内容