数组的every方法也可以对数组进行遍历,every方法也接上两个参数,第一个参数是一个函数,第二个参数是传入值;其中第一个参数函数可以接收3个参数,第一个参数是当前值,第二个参数是当前值的索引值,第三个参数为当前的数组,返回值是一个布尔类型的参数,只有所有参数全部符合要求才会返回真,只要是有一个不满足要求则返回假。数组中的每个参数在迭代过程中都会调用第一个参数回调函数,如果这个函数没有返回值则默认返回的是一个undefined,可以转换为false。所以这个函数需要有个判断条件进行显示的返回。当有一个值不满足条件时将会退出循环。下面是一个使用示例。
<!DOCTYPE html>
<html>
<head>
<title>JavaScript数组的every方法</title>
<meta charset="utf-8">
</head>
<body>
<textarea id="value" style="height: 400px;width: 200px;"></textarea>
</body>
<script>
var dom = document.getElementById("value");
let a=[1,2,3,4,5,6,7,8,9];
let data = 0;
let str = []
let value=a.every((val,index)=>{
str.push(`the value ${val} the index is ${index}`);
data += val;
return val<8;
},data);
str.push(`the result is ${value}`);
str.push(`the data is ${data}`);
dom.innerHTML=str.join("\n");
</script>
</html>
根据上述的示例我们看到当不满足条件时循环自动的退出,这里一定要注意需要使用显示的返回值否则函数隐式的返回值为undefined,将会导致遍历退出。