- forEach 遍历数组 不支持跳出,无返回值
/** * forEach 数组遍历 中途不能跳出 和for遍历最大的区别 * 它的参数是一个回掉函数 * 该回掉函数的参数: * item: 数组的每一项 * index: 下标 */ arr.forEach(function fn(item,index){ // do something })
- some,every 支持中途跳出,有返回值
/** * some和every 参数和forEach一样 * some 遇到一个true 就终止遍历 返回true 否则返回 false * every 遇到一个false 就终止遍历 返回false 否则返回 true * @return {Boolean} */ var flag=arr.some(function(item,index){ // 这里只会遍历到第一项 后面都不会遍历 // 这里我们优化一下上个列子,这里只会遍历前2项 if(index==1){ // do something } return index==1 })
- find,findIndex 支持中途跳出,有返回值
/** * find,findIndex 参数和forEach一样 * find 遇到一个true 就终止遍历 返回满足条件的那一项 否则返回 空对象 * findIndex 遇到一个true 就终止遍历 返回满足条件的那一项的下标 否则-1 * @return */ var index=arr.findIndex(function(item,index){ // 这里只会遍历到满足条件的那一项 后面都不会遍历 return item.name=='b' }) console.log(index) // index: 1 var obj=arr.find(function(item,index){ // 这里只会遍历到满足条件的那一项 后面都不会遍历 return item.name=='b' }) console.log(obj) //{name: "b", age: 12}
- includes 判断数组是否包含某元素,返回一个Boolean
/** * includes 判断是=== * 不适合判断数组对象 除非数组中是对象的引用 * 适合String number基本类型数组 * @return {Boolean} */ [1,2,3].includes('1') // false [1,2,3].includes(1) // true arr.includes({name: 'a',age: 11}) //false
- reduce 这个比较复杂,下篇详解