forEach不支持break和return。一般普通循环都是用forEach
ar arr1=["aa","bb","aa","dd"];
arr1.forEach((item,index) => { // console.log("index-> "+index+" item->"+item) if(item=="aa"){ arr1[index]="变";
//break;//写break将会报错 return true;//无效 } }) console.log(arr1)
控制台内容为 ["变", "bb", "变", "dd"]
forEach:说明进入判断后还会继续执行判断,直到循环结束
some方法在forEach用不了的情况下使用,例如需要跳出循环操作
arr1.some((item,index) => { // 和forEach一样功能,但是可以有return值 // console.log("index-> "+index+" item->"+item) if(item=="aa"){ arr1[index]="变";
//arr1.splice(index,1)//循环删除元素内容,只能用some方法,不能用foreach return true;//在some方法中,return true; 会跳出当前循环 } }) console.log(arr1)
控制台内容为 ["变", "bb", "aa", "dd"]
some:说明进入判断后会跳出当前循环,不会再执行内容。(这样就可以节约资源,找到内容了后就不再找了)