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

时间:2009-07-14 22:23:32

标签: javascript jquery arrays

我在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中完成某些事情)。

6 个答案:

答案 0 :(得分:14)

首先,

var array=[];

比使用“new”更好。

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

for (i=0;i<array.length;i++) {
  console.log("Key is "+i+" and Value is "+array[i]);
}

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


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

答案 1 :(得分:8)

使用jQuery.each你可以写一些类似于(未测试)的东西:

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

答案 2 :(得分:1)

看看underscorejs.org - 用它这样做:

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

它由backbonejs和许多其他框架/库使用,例如meteor,例如它有80个左右非常有用的功能 - 如果你认真对待javascript,花30分钟阅读整个下划线页面,你将永远不想用javascript编写任何代码。

答案 3 :(得分:1)

for (x in array){

     var arrayItem = array[x]

}

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

答案 4 :(得分:0)

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

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

此方法有效,因为数字0在JavaScript中评估为false

答案 5 :(得分:0)

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