龙空技术网

碎片时间学编程「35]:JS for...in、for...of、 forEach 有什么区别

路条编程 73

前言:

此时你们对“js for in foreach”都比较看重,朋友们都想要学习一些“js for in foreach”的相关资讯。那么小编同时在网络上收集了一些对于“js for in foreach””的相关文章,希望你们能喜欢,你们快快来学习一下吧!

for...in用于迭代对象的所有可枚举属性,包括继承的可枚举属性。此迭代语句可以与数组字符串或普通对象一起使用,但不能与Map 或 Set对象一起使用。

for (let prop in ['a', 'b', 'c'])  console.log(prop);            // 0, 1, 2 (数组索引for (let prop in 'str')  console.log(prop);            // 0, 1, 2 (字符串索引)for (let prop in {a: 1, b: 2, c: 3})  console.log(prop);            // a, b, c (对象属性名)for (let prop in new Set(['a', 'b', 'a', 'd']))  console.log(prop);            // undefined (没有可枚举的属性)

for...of用于迭代可迭代对象,迭代它们的值而不是它们的属性。此迭代语句可用于数组、字符串MapSet对象,但不能用于普通对象。

for (let val of ['a', 'b', 'c'])  console.log(val);            // a, b, c (数组索引)for (let val of 'str')  console.log(val);            // s, t, r (字符串字符)for (let val of {a: 1, b: 2, c: 3})  console.log(prop);           // TypeError (不可迭代)for (let val of new Set(['a', 'b', 'a', 'd']))  console.log(val);            // a, b, d (设定值)

最后,forEach()Array原型的一个方法,它允许您遍历数组的元素。虽然forEach()只迭代数组,但它可以在迭代时访问每个元素的值和索引。

['a', 'b', 'c'].forEach(  val => console.log(val)     // a, b, c (数组值));['a', 'b', 'c'].forEach(  (val, i) => console.log(i)  // 0, 1, 2 (数组索引));

更多内容请访问

标签: #js for in foreach