在 ES6 中,有几种新型的循环方法,这些方法可以帮助我们更加方便地遍历数组、对象等数据结构。本文将介绍这些新型循环方法,并给出示例代码。
for...of 循环
for...of 循环可以用来遍历数组、字符串、Set、Map 等可迭代对象。它与传统的 for 循环不同,不需要索引值,而是直接遍历元素的值。
let arr = [1, 2, 3]; for (let item of arr) { console.log(item); } // 输出:1 2 3
let str = 'hello'; for (let char of str) { console.log(char); } // 输出:h e l l o
let set = new Set([1, 2, 3]); for (let item of set) { console.log(item); } // 输出:1 2 3
let map = new Map([['name', 'Alice'], ['age', 18]]); for (let [key, value] of map) { console.log(key + ': ' + value); } // 输出:name: Alice age: 18
forEach 循环
forEach 循环是 Array 对象的方法,可以用来遍历数组。它与传统的 for 循环不同,不能使用 break 和 continue 语句,但可以使用 return 语句。
let arr = [1, 2, 3]; arr.forEach(function(item) { console.log(item); }); // 输出:1 2 3
for...in 循环
for...in 循环可以用来遍历对象的属性名。它与传统的 for 循环不同,不需要索引值,而是直接遍历属性名。
let obj = {name: 'Alice', age: 18}; for (let key in obj) { console.log(key + ': ' + obj[key]); } // 输出:name: Alice age: 18
需要注意的是,for...in 循环遍历的是对象的可枚举属性,包括原型链上的属性。如果只想遍历对象自身的属性,可以使用 Object.keys() 方法将对象的属性名转换为数组,然后再用 for...of 循环遍历。
let obj = {name: 'Alice', age: 18}; for (let key of Object.keys(obj)) { console.log(key + ': ' + obj[key]); } // 输出:name: Alice age: 18
总结
ES6 中的新型循环方法可以帮助我们更加方便地遍历数组、对象等数据结构。需要注意的是,不同的循环方法适用于不同类型的数据结构,使用时需要根据实际情况选择合适的方法。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658277f3d2f5e1655dd94563