1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【JavaScript面试】forEach for in for of循环的用法

【JavaScript面试】forEach for in for of循环的用法

时间:2019-08-24 16:43:59

相关推荐

【JavaScript面试】forEach for in for of循环的用法

一般的遍历数组的方法

var array = [1,2,3,4,5,6,7]; for (var i = 0; i < array.length; i) {console.log(i,array[i]); }

用for in的方遍历数组

const obj = {a: 1,b: 2,c: 3}for (let i in obj) {console.log(i) //a,b,c}for (let i in obj) {console.log(obj[i]) //1,2,3}

for in遍历的是数组的索引(即键名)

总结一句: for in 循环特别适合遍历对象。

forEach

array.forEach(v=>{console.log(v); });

具体可以看数组的forEach()方法总结

for of循环

let s = "helloabc"; for(let c of s) {console.log(c); }

for…of 循环用来获取一对键值对中的值,而 for in 获取的是键名.for…of一般用来遍历迭代器。比如数组 Array、Map、Set、String、伪数组(arguments对象、Nodelist对象等)。以上这些都可以直接使用 for of 循环。 凡是部署了 iterator 接口的数据结构也都可以使用数组的扩展运算符(…)、和解构赋值等操作。for of 不同与 forEach, 它可以与 break、continue和return 配合使用,也就是说 for of 循环可以随时退出循环。

总结

for…of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象.与forEach()不同的是,它可以正确响应break、continue和return语句。for of循环不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法。for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。for of遍历的只是数组内的元素,而不包括数组的原型属性method和索引name。forEach(value,index,Array)不能同时遍历多个集合,在遍历的时候无法修改和删除集合数据,方法不能使用break,continue语句跳出循环,或者使用return从函数体返回,对于空数组不会执行回调函数。forEach与for当循环遍历为空的数组时,forEach会跳过为空的值,for不会跳过为空的数据,会直接显示undefined。两者都能识别出NULL。forEach() 被调用时,不会改变原数组,也就是调用它的数组(尽管 callback 函数在被调用时可能会改变原数组)。

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