在Javascript中循环遍历数组的元素[重复]
Posted
技术标签:
【中文标题】在Javascript中循环遍历数组的元素[重复]【英文标题】:Looping through elements of an array in Javascript [duplicate] 【发布时间】:2010-11-10 19:59:47 【问题描述】:我在 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)。
【问题讨论】:
【参考方案1】:for (x in array)
var arrayItem = array[x]
这种类型的 for 循环确实有效,但给出了数组位置而不是数组本身的项。很简洁,我一直在用它
【讨论】:
【参考方案2】:看看underscorejs.org - 用它你可以这样做:
_.each(array, function(element, index, array)
doSomething(item, index);
);
backbonejs 和许多其他框架/库都使用它,例如流星,例如它有大约 80 个非常有用的功能 - 如果您对 javascript 很认真,请花 30 分钟阅读整个下划线页面,除了 javascript,您永远不会想编写任何代码。
【讨论】:
【参考方案3】:这种任务不需要jQuery,它可以只使用一个for循环,这是在JS中循环遍历数组的明智方法。您可以阅读此link text 了解更多详细信息
【讨论】:
【参考方案4】:首先,
var array=[];
比使用“新”更可取。
其次,在这种情况下,您的键是数字的,所以您只需:
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。
【讨论】:
你应该添加console.log需要firefox和firebug。 @ichiban。好点子。我编辑了我的答案以提及这一点。 答案是使用 Javascript 对象——因为看起来我需要比标准数组更灵活的东西。 (我的数组是动态生成的,并且确实包含非数字值)。感谢您的回答。 也感谢有关新数组声明的信息。会记住这一点。 好的。请记住,您可以执行 array["one"]="apples" 然后使用 for-in,但在 JavaScript 中这样做很奇怪,其他人可能会对您的代码感到困惑。【参考方案5】:使用jQuery.each,您可以编写类似于(未测试)的内容:
jQuery.each(array, function(k,v)
console.log("K: "+,k," V:",v);
);
【讨论】:
除非这需要 jQuery... 按照问题的要求。【参考方案6】:如果顺序不是优先级(或者即使是,您也可以随时反转数组),这是我的首选方法:
var i = array.length;
while(i--)
console.log("key is " + i + " and value is " + array[i]);
这种方法有效,因为数字 0
在 JavaScript 中计算为 false
。
【讨论】:
以上是关于在Javascript中循环遍历数组的元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章