在 JavaScript 中循环(for each)遍历数组
注意:此回答已经过时。对于更现代的方法,请查看数组可用的方法。其中感兴趣的方法可能包括:
- forEach
- map
- filter
- zip
- reduce
- every
- some
在JavaScript中迭代数组的标准方法是使用基本的for
循环:
var length = arr.length, element = null; for (var i = 0; i < length; i++) { element = arr[i]; // Do something with element }
但是需要注意的是,此方法仅适用于密集数组,并且每个索引都被元素占用。如果数组是稀疏的,则使用此方法可能会遇到性能问题,因为您将遍历许多实际上不存在于数组中的索引。在这种情况下,使用for..in
循环可能是更好的选择。但是,您必须使用适当的保护措施,以确保只针对数组的所需属性(即数组元素)进行操作,因为for..in
循环也会在旧版浏览器中枚举,或者如果其他属性被定义为enumerable
。
在 ECMAScript 5 中,数组原型将有一个 forEach 方法,但是在传统浏览器中不支持。因此,为了能够一致地使用它,您必须拥有支持它的环境(例如服务器端JavaScript的Node.js),或者使用“Polyfill”。然而,这种功能的 Polyfill 很简单,因为它使代码更易于阅读,所以将它包含在内是一个不错的选择。