1、数组的检测方法数组本身在操作当中还有一些用于检测的方法。这里比较有代表性的就是 every 和some。我们来看一下 every 代表的意义。我们有一个数组,这个数组里面的值是有规律的。然后我用 every 对数组进行检测,every 后面有一个参数 isDouble,这个 isDouble 是我们自己定义的一个有返回值的函数。下面是 isDouble 这个函数的定义,isDouble 要提供 3 个参数 element,index,array,这 3 个参数是不能省略的,它们分别代表了数组当前的元素,当前的索引值,整个数组。这个函数是要返回一个布尔值的,作为 every 检测的返回值。如果当
2、前的索引值小于数组的长度减 1,也就是如果我要检索的索引值在数组的范围内,我返回当前元素乘以 2 是不是等于下一个值(我们刚才的数组有这样一个规律,就是后边一个值是它前边一个值的两倍) ,我这里就是要检测下是不是所有的值都符合这个规律,如果符合这个规律,我返回true,如果不等于的话,我返回的是 false。然后我们来看,every 本身在处理数组检测的时候它是要检测所有的元素,它把所有的元素检测一遍之后,如果所有的返回值全是 true,那么它就输出 true。我们来看,这里全部符合。所以最终输出了 true。如果这个时候给数组 a 增加了一个 3,我用的是 push 方法。这样一来我就把原来数组的规律给打乱了。我们来看一下结果,a 数组增加了一个 3,every 检测结果返回的是false。就是说 every 要满足所有真,它才为真。这个有点像我们正常的语言逻辑。与 every 相对应的还有一个 some。some 是只要有一个为真,那它就是真。这个时候,如果我输出一下,看到的就是 true 了。因为数组里面至少有一对元素是满足二倍关系的。所以,every 和 some,一个是逻辑与(全真才真) ,一个是逻辑或(一真就真) 。假如有一个很庞大的数组,它里面的数字看起来是符合某种规律的,但又不确定是所有符合还是部分符合,这个时候我们可以根据实际情况去定义具体的检测函数。