1.1 forEach() 方法
定义和用法: forEach() 方法按顺序为数组中的每个元素调用一次函数。
注意: 对于没有值的数组元素,不执行forEach() 方法。
语法:
array.forEach(function(currentValue, index, arr), thisValue)
问题1:使用 return 不退出循环
const arr = [1,2,3,4,5]; const test = 3; arr.forEach((item) => { if(item == test){ return item } console.log(item); })
问题2:使用 break 报错
const arr = [1,2,3,4,5]; const test = 3; arr.forEach((item) => { if(item == test){ break } console.log(item); })
1.2 map() 方法
定义和用法:
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测,不会改变原始数组。
语法:
array.map(function(currentValue,index,arr), thisValue)
问题1:使用 return 不退出循环
const arr = [1,2,3,4,5]; const test = 3; arr.map((item) => { if(item == test){ return } console.log(item); })
问题2:使用 break 报错
const arr = [1,2,3,4,5]; const test = 3; arr.map((item) => { if(item == test){ break } console.log(item); })
2. 解决方案
2.1 使用 for 循环
注意: return 只能出现在函数体中,也就是 function 中 或 {} 中 。直接写在循环中会报错 Uncaught SyntaxError: Illegal return statement。
const arr = [1,2,3,4,5]; const count = 3; function test(){ for(let i = 0; i < arr.length; i++){ if(arr[i] == count){ return arr[i] } } } console.log(test())
2.2 使用 some () 方法,当内部 return true 时跳出整个循环
const arr = [1,2,3,4,5]; const test = 3; arr.some((item) => { if(item == test){ return item; // 返回值为true,并跳出循环 } console.log(item); })
2.3 使用 every() 方法 : 当内部 return false 时跳出整个循环(需要写 return true )
const arr = [1,2,3,4,5]; const test = 3; arr.every((item) => { if(item == test){ return false; }else{ console.log(item); return true; } })