如何在Javascript中使简单的php foreach等效?

How to make simple php's foreach equivalent in Javascript?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Loop through array in JavaScript

我想在javascript中使用相当于php的foreach。因为我不太了解javascript语言,所以我希望有人将此PHP代码重写为javascript片段:

1
2
3
4
5
6
$my_array = array(2 => 'Mike', 4 => 'Peter', 7 => 'Sam', 10 => 'Michael');

foreach($my_array as $id => $name)
{
     echo $id . ' = ' . $name;
}

在JavaScript语言中,这是可能的吗?


最近的构造是

1
2
3
4
a = { 2: 'Mike', 4: 'Peter', 7: 'Sam', 10: 'Michael' };
for(var n in a) {
    console.log(n+'='+a[n]);
}


在jquery中,$.each函数类似。

它允许您使用回调函数迭代数组,其中您可以访问每个项:

1
2
3
4
5
6
var arr = ["one","two","three","four","five" ];


$.each(arr, function(index, value) {
  // work with value
});

普通的javascript?

1
2
3
for (var key in obj) {
    alert(key + ': ' + obj[key]);
}


因为你是双向的。

首先,当数据在对象中时(例如,它在我的列表中)第二个是当数据正好在数组中时(例如,它是我的数组)

在任何情况下,您都可以将javascript用于…in语句

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script type="text/javascript" charset="utf-8">
    var data;
    var my_list  = {2:'Mike', 4:'Peter', 7:'Sam', 10:'Michael'};
    var my_array = new Array();
    my_array[2]  = 'Mike';
    my_array[4]  = 'Peter';
    my_array[7]  = 'Sam';
    my_array[10] = 'Michael';

    data = '';
    for(index in my_list) {
        data += (index+'='+my_list[index]+"
"
);
    }
    console.log(data);

    data = '';
    for(index in my_array) {
        data += (index+'='+my_array[index]+"
"
);
    }
    console.log(data);

在这两种情况下,控制台输出都是:

1
2
3
4
2=Mike
4=Peter
7=Sam
10=Michael

实际上,请阅读http://www.w3schools.com/js/js-loop-for-in.asp


参见下面的URL

jquery中的foreach相当于php?

或者尝试一下

如果要迭代对象,我建议使用javascript变量:

1
2
3
for (var key in obj) {
    alert(key + ': ' + obj[key]);
}

您还可以在jquery中迭代对象,如下所示:注意!这样做是毫无意义的,除非您认为这种语法更容易维护。下面的语法比上面的标准javascript for循环有更多的开销。

1
2
3
$.each(obj, function (key, value) {
    alert(key + ': ' + value);
});

要迭代数组,这是在标准JavaScript中进行迭代的方法(假设arr是数组):

1
2
3
for (var i = 0, l = arr.length; i < l; i++) {
    alert(i + ': ' + arr[i]);
}

要在jquery中执行此操作,可以这样做:

1
2
3
$.each(arr, function (index, value) {
    alert(index + ': ' + value);
});