Js循环的几种方法

摘要:for 常用于循环数组 ,for in 常用来循环对象,不建议循环数组,因为i是字符串 可能会有隐患问题,for in 循环会找到 prototype 上去,所以最好在循环体内加一个判断

1、for 常用于循环数组  

var arr = [1,2,3,4,5]
for(let i = 0;i<arr.length;i++){console.log(i)}


2、for in 

常用来循环对象,不建议循环数组,因为i是字符串 可能会有隐患问题,for in 循环会找到 prototype 上去,所以最好在循环体内加一个判断,就用 obj[i].hasOwnProperty(i),这样就避免遍历出太多不需要的属性

var obj = {name:'shao',age:'27'}

for(let i in obj){
 if(obj[i].hasOwnProperty(i)){
  console.log(i,0bj[i])
 }
}


3、forEach: 

不用知道数组长度,只需要第一个参数(i 下标对应得value), forEach在元素被执行完之前  无法停止;如果你必须要停止,可以尝试 try catch 语句,就是在要强制退出的时候,抛出一个 error 给 catch 捕捉到,然后在 catch 里面 return,这样就能中止循环了,如果你经常用这个方法,最好自定义一个这样的 forEach 函数在你的库里。

let arr = [1,2,3];
arr.forEach( (i,index)=>{ console.log(i,index)})// 1 0// 2 1// 3 2


4、map:

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。map必须要有返回值,否则为[undefined, undefined, undefined],长度和arr保持一致
注意:map 和 forEach 方法都是只能用来遍历数组,不能用来遍历普通对象。

let arr = [1,2,3];
let tt = arr.map( function(i){  console.log(i)  return i*2;})// [2,4,6]


5、for of 循环 

es6语法能代替forin和foreach   注意兼容性

let arr = ['name','age'];for(let i of arr){console.log(i)}// name// age


6、filter 

通过一定规则过滤掉部分元素  不改变原来的数组

let arr = [1,2,3];let tt = arr.filter( function(i){  return i>1; })// [2,3]


7、some() 

方法用来检测数组中是否有满足条件的一个或者多个元素  如果有就返回true  不改变原数组

let arr = [1,2,3];let tt = arr.some(function(i){return i>1;})// true


8、every

用来检测数组中每一项是否都符合条件  如果是就返回true  不改变原数组

let arr = [1,2,3];
let tt = arr.some(function(i){return i>1;})// 检测数组中元素是否都大于1
// false


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_6863