~ 之前对于forEach方法了解的不多,在使用时,突然发现return true fasle break没有反应,仔细一看,还是大有文章,遂记……
当想跳出循环可以使用every 和 some方法,下面是简单的总结
every 当内部return false时跳出整个循环(return true;也是需要写)
//every()当内部return false时跳出整个循环 let list = [1, 2, 3, 4, 5]; list.every((value, index) => { if(value > 3){ console.log(value)// 4 return false; }else{ console.log(value)// 1 2 3 return true; } }); list.every((value, index) => { if(value > 3){ console.log(value) return false; }else{ console.log(value)// 1 // return true; // 如果没有返回值true 的话,也会跳出循环 } });
forEach没有返回值,只针对每个元素调用func。
// forEach没有返回值,只针对每个元素调用func。 let list2 = [1, 2, 3, 4, 5]; list2.forEach((value, index) => { if(value > 3){ console.log(value)// 4 5 return false;//没有返回值,ruturn false 仍向下执行 }else{ console.log(value)// 1 2 3 return true; } });
some 当内部return true时跳出整个循环
let list3 = [1, 2, 3, 4, 5]; list3.some((value, index) => { if(value === 3){ return true;//当内部return true时跳出整个循环 } console.log(value)// 1 2 });
map 有返回值,返回一个新的数组,每个元素为调用func的结果。
let list5 = [1, 2, 3, 4, 5]; let arr = []; arr = list5.map((value, index) => { return value * 2; }); console.log(arr);//[2, 4, 6, 8, 10]
jQuery有each循环,这个是异步的
$(selector).each(function(index,element){});
var arr = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']] $.each(arr, function(i, item){ $.each(item,function(j,val){ alert(j); alert(val); }); });
var obj = { one:1, two:2, three:3}; each(obj, function(key, val) { alert(key); alert(val); });
<input name="aaa" type="hidden" value="111" /> <input name="bbb" type="hidden" value="222" /> <input name="ccc" type="hidden" value="333" /> <input name="ddd" type="hidden" value="444"/> 然后你使用each如下 $.each($("input:hidden"), function(i,val){ alert(val); alert(i); alert(val.name); alert(val.value); });
~ 之前对于forEach方法了解的不多,在使用时,突然发现return true fasle break没有反应,仔细一看,还是大有文章,遂记……
当想跳出循环可以使用every 和 some方法,下面是简单的总结
every 当内部return false时跳出整个循环(return true;也是需要写)//every()当内部return false时跳出整个循环let list = [1, 2, 3, 4, 5];list.every((value, index) => { if(value > 3){ console.log(value)// 4 return false;
}else{ console.log(value)// 1 2 3 return true; }
});list.every((value, index) => { if(value > 3){ console.log(value) return false;
}else{ console.log(value)// 1 // return true; // 如果没有返回值true 的话,也会跳出循环 }
}); 12345678910111213141516171819202122232425forEach没有返回值,只针对每个元素调用func。// forEach没有返回值,只针对每个元素调用func。 let list2 = [1, 2, 3, 4, 5]; list2.forEach((value, index) => { if(value > 3){ console.log(value)// 4 5 return false;//没有返回值,ruturn false 仍向下执行
}else{ console.log(value)// 1 2 3 return true; } });12345678910111213some 当内部return true时跳出整个循环 let list3 = [1, 2, 3, 4, 5]; list3.some((value, index) => { if(value === 3){ return true;//当内部return true时跳出整个循环 } console.log(value)// 1 2 });1234567map 有返回值,返回一个新的数组,每个元素为调用func的结果。 let list5 = [1, 2, 3, 4, 5]; let arr = []; arr = list5.map((value, index) => { return value * 2; }); console.log(arr);//[2, 4, 6, 8, 10]--------------------- 作者:Shuah153 来源:CSDN 原文:https://blog.csdn.net/weixin_36934930/article/details/81061063 版权声明:本文为博主原创文章,转载请附上博文链接!