在Javascript中循环遍历数组的元素

我在Javascript中有一个数组:

var array = new array(); array[0] = "apples"; array[1] = "oranges"; array[2] = "pears"; 

在PHP中,使用给定的数组,我可以使用以下内容遍历数组,并分解键和值:

 foreach ($array as $key => $value) { echo("Key is $key and Value is $value"); } 

我怎么能用Javascript做到这一点? 我知道:

 for (x in array){ // Do something with x. } 

但我发现没有什么可以复制php风格的foreach。 是否有可能简洁地在Javascript中实现类似的东西? (我也使用jQuery,如果可以在jQuery中完成某些事情)。

第一,

 var array=[]; 

比使用“新”更可取。

其次,在这种情况下,你的键是数字的,所以你只需:

 for (i=0;i 

如果要使用非数字键,请使用JavaScript对象而不是数组。 使用字符串而不是数字作为数组索引是有效的,但JavaScript对此没有太多支持。


我使用“console.log”因为我假设您不希望弹出一堆警报。 console.log可以替换为用于记录信息的任何内容。 您可以使用alert()或将文本写入div。

使用jQuery.each,您可以编写类似于(未测试)的内容:

 jQuery.each(array, function(k,v) { console.log("K: "+,k," V:",v); }); 

看看underscorejs.org – 用它你这样做:

 _.each(array, function(element, index, array) { doSomething(item, index); }); 

它被backbonejs和许多其他框架/库(如meteor)使用,例如它有80个左右非常有用的函数 – 如果你认真对待javascript,花30分钟阅读整个下划线页面,你永远不会想要编写任何代码但是javascript。

 for (x in array){ var arrayItem = array[x] } 

这种类型的for循环确实有效,但是给出数组位置而不是数组本身的项。 它非常简洁,我一直都在使用它

如果顺序不是优先级(或者即使它是,你总是可以反转数组),这是我的首选方法:

 var i = array.length; while(i--) { console.log("key is " + i + " and value is " + array[i]); } 

这种方法有效,因为数字0在JavaScript中的计算结果为false

这种任务不需要jQuery,它可以只使用for循环 ,这是在JS中循环数组的可取方法。 您可以阅读此链接文本以获取更多详细信息