第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > for forEach for of for in的区别

for forEach for of for in的区别

时间:2024-03-08 21:03:01

相关推荐

for forEach  for of  for in的区别

for、forEach、 for of 、for in的区别

①for(最原始的写法)遍历数组

//首先它和forEach,forof一样不可以遍历对象//解决办法就是把对象转化为数组类型//有一个对象:let obj={a:1,b:2,c:3}//用Object.keys属性转化let obj2=Object.keys(obj)//最后就可以用来遍历了for(let i=0;i<obj2.length;i++){console.log(obj2[i])}//输出结果就能出来了,forof foreach同理

优点:程序简洁,结构清晰,循环初始化,循环变量化,循环体和循 环条件位置突出

缺点:结构比while循环复杂,容易出编码错误

②forEach(ES5 可以三个参数,第一是value,第二个是index,第三个是数组体)遍历数组

let arry=[9,8,7,6,5,4]array.forEach(function(value,index,arr){console.log(value) //输出结果为9 8 7 6 5 4})

缺点:不能同时遍历多个集合,在遍历的时候无法修改和删除集合数据,方法不能使用break,continue语句跳出循环,或者使用return从函数体返回,对于空数组不会执行回调函数

优点:便利的时候更加简洁,效率和for循环相同,不用关心集合下标的问题,减少了出错的效率

定义:用于调用数组的每个元素,并将元素传递给回调函数

③for…of(ES6,循环数组的元素值)遍历数组

let arr=["nick","freddy","mike","james"];for (let item of arr){console.log(item)//nick freddy mike james}

优点:避免了for in的所有缺点,可以使用break,continue和return,不仅支持数组的遍历,还可以遍历类似数组的对象,支持字符串的遍历。最简洁,最直接的遍历数组的语法。支持map和Set对象遍历

缺点:不适用于处理原有的原生对象(原生对象是一个子集,包含一些在运动过程中动态创建的对象)

④for…in(大部分用于遍历对象json)

let person={name:"老王",age:23,city:"大唐"}let text=""for (let i in person){text+=person[i]}console.log(text)//老王23大唐let arry=[1,2,3,4,5]for (let i in arry){console.log(arry[i])//1 2 3 4 5}

定义:用于循环遍历数组或对象属性,fot in循环里面的index是string类型的,代码每执行一次,就会对数组的元素或者对象的属性进行一次操作

缺点:某些情况下,会出现随机顺序的遍历,因为里面的值是string类型,所以增加了转换过程,因此开销较大。使用 for…in 原型链上的所有属性都将被访问

优点:可以遍历数组的键名,遍历对象简洁方便

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。