在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中循环遍历数组的元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 数组去重

一次循环遍历 Javascript 数组多个元素的惯用方法是啥?

JavaScript循环遍历

JavaScript的学习日记三(for循环+数组)

Javascript从“繁”到“简”进行数组去重

JavaScript 数组常见操作