在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中循环数组的可取方法。 您可以阅读此链接文本以获取更多详细信息