我如何通过一个序列中的所有输入,使用JavaScript?


当前回答

我也想添加这个作为一个逆转旋转的组成和上面的答案,谁也喜欢这个合成。

var foo = [object,object,object];
for (var i = foo.length, item; item = foo[--i];) {
    console.log(item);
}

福利:

这一点的好处:你已经在第一个类似的参考,不需要以后与另一个线声明。

麻烦:

这将打破,每当参考是虚假 - 虚假(不定义,等)。它可以作为一个优点,但是,它会使它稍微更难阅读。

其他回答

如果您正在使用 jQuery 图书馆,您可以使用 jQuery.each:

$.each(yourArray, function(index, value) {
  // do your stuff here
});

编辑:

作为一个问题,用户想要代码在JavaScript而不是jquery,所以编辑是

var length = yourArray.length;   
for (var i = 0; i < length; i++) {
  // Do something with yourArray[i].
}

如果你不关心空白:

var x;

while(x = y.pop()){ 

    alert(x); //do something 

}

x 将包含 y 的最后值,并将从序列中删除。

如果你想使用 forEach(),它会看起来像 -

theArray.forEach ( element => {
    console.log(element);
});

如果你想使用(),它会看起来像 -

for(let idx = 0; idx < theArray.length; idx++){
    let element = theArray[idx];
    console.log(element);
}

注意: 这个答案是毫无希望的日期。 为了更现代化的方法,请参见在序列上可用的方法。

forEach 地图过滤器 ZIP 减少每一个


在JavaScript中引用一个序列的标准方式是Vanilla for-loop:

var length = arr.length,
    element = null;
for (var i = 0; i < length; i++) {
  element = arr[i];
  // Do something with element
}

但是,请注意,这种方法只有在你有一个密集的序列,每个指数都被一个元素占据。 如果序列是分散的,那么你可以运行到性能问题与这个方法,因为你会 iterate上很多指标,实际上不存在在序列。 在这种情况下,一个为.. in-loop 可能是一个更好的想法。

在 ECMAScript 5 将有一个 forEach 方法在序列的原型,但它不支持在遗产浏览器. 因此,能够连续使用它,你必须有一个环境支持它(例如,Node.js 服务器侧 JavaScript),或使用一个“Polyfill”。 该功能的 Polyfill 是,然而,三角形,因为它使代码更容易阅读,它是一个好 polyfill。

表演

细节

在测试中,我们计算序列元素的总数,我对小序列(10个元素)和大序列(1M元素)进行测试,并将它们分为三个组:

A - 测试B - 测试C - 其他/替代方法

Cross 浏览器结果

所有测试浏览器的结果

浏览器*

配有10个元素

此分類上一篇

配备1000元元素

Chrome 的结果:您可以在这里在您的机器上进行测试

此分類上一篇