var arr = [ 7,8, 2, 3, 4, 5, 6 ,9];
let everyRes = arr.every( function( item, index, array ){
console.log( 'item=' + item + ',index='+index+',array='+array );
return item > 3;
});
console.log(everyRes);
let someRes = arr.some( function( item, index, array ){
console.log( 'item=' + item + ',index='+index+',array='+array );
return item > 3;
});
console.log(someRes);
//every函数
item=7,index=0,array=7,8,2,3,4,5,6,9
router.js:50 item=8,index=1,array=7,8,2,3,4,5,6,9
router.js:50 item=2,index=2,array=7,8,2,3,4,5,6,9
router.js:55 false
//some函数
router.js:58 item=7,index=0,array=7,8,2,3,4,5,6,9
router.js:63 true
//some和every的区别
//some函数只要有一项符合条件就不在迭代下去
//every函数会找到符合条件的所有项,直到不符合的的才会停止迭代
//传统的迭代器
var forRes=null;
for(var i=0;i<arr.length;i++){
console.log("迭代次数"+i)
if(arr[i]>3){
forRes=true
//break
}else {
forRes=false
//break
}
}
console.log(forRes)
true
//router.js:66 迭代次数0
//router.js:66 迭代次数1
//router.js:66 迭代次数2
//router.js:66 迭代次数3
//router.js:66 迭代次数4
//router.js:66 迭代次数5
//router.js:66 迭代次数6
//router.js:66 迭代次数7
//router.js:66 迭代次数8
//router.js:66 迭代次数9
//router.js:75 false
//可以使用break语句去终端执行外面的嵌套一层函数才能作为返回值,而es6提供的高阶函数提供了便捷
//es6提供了更高效的编程函数,应该养成使用的习惯