浅谈javascript中for in 和 for each in的区别

浅谈 JavaScript 中 for...in 和 forEach() 的区别

在 JavaScript 编程中,我们常常需要遍历数组或对象来获取它们的元素或属性。其中,最常用的两个循环结构是 for...inforEach()。虽然它们看起来类似,但实际上有着不同的用途和行为。

for...in 循环

for...in 循环是一种遍历对象属性的方法。它可以用来遍历普通对象(Object)、数组、可枚举的 Map 和 Set 对象等。

语法如下:

--- --------- -- ------- -
  -- ---- -- -- --------
-

其中,variable 表示每次迭代中对象属性的名称,object 是要遍历的对象。

例如,我们要遍历一个数组并输出其中的每个元素:

----- --- - --- -- ---
--- ---- - -- ---- -
  --------------------
-
-- -------
-- -
-- -
-- -

需要注意的是,for...in 循环不保证按照任何特定的顺序遍历对象属性,因此不应该用于遍历数组或类数组对象。

forEach() 方法

forEach() 方法是数组对象提供的一种遍历方式,它可以对数组的每个元素执行一个指定的函数。与 for...in 不同的是,forEach() 只能用于遍历数组,而不能遍历对象的属性。

语法如下:

------------------------------------ ------ ------ -
  -- ---- -- -- --------
---

其中,currentValue 表示当前正在处理的元素,index 表示当前元素的索引,array 是被遍历的数组本身。

例如,我们要遍历一个数组并输出其中的每个元素:

----- --- - --- -- ---
-------------------------- -
  ------------------
---
-- -------
-- -
-- -
-- -

需要注意的是,forEach() 方法不会改变原始数组。如果需要修改原始数组,可以在回调函数中使用索引值来修改相应的元素。

总结

  • for...in 循环适用于遍历对象的属性,包括普通对象、可枚举的 Map 和 Set 对象等。
  • forEach() 方法适用于遍历数组,并对每个元素执行一定的操作。
  • 在遍历数组时,建议使用 forEach() 方法;在遍历对象属性时,应该使用 for...in 循环。

希望这篇文章对您有所启发,让您更好地理解和使用 JavaScript 的循环结构。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/2664