我想在javascript中使用相当于php的foreach。因为我真的不知道Javascript语言,所以我希望有人将这个PHP代码重写为Javascript片段:
$my_array = array(2 => 'Mike', 4 => 'Peter', 7 => 'Sam', 10 => 'Michael');
foreach($my_array as $id => $name)
{
echo $id . ' = ' . $name;
}
甚至可以使用Javascript语言吗?
答案 0 :(得分:15)
最接近的构造是
a = { 2: 'Mike', 4: 'Peter', 7: 'Sam', 10: 'Michael' };
for(var n in a) {
console.log(n+'='+a[n]);
}
答案 1 :(得分:8)
在JQuery中,$.each
函数类似。
它允许您使用回调函数迭代数组,您可以访问每个项目:
var arr = [ "one", "two", "three", "four", "five" ];
$.each(arr, function(index, value) {
// work with value
});
普通的javascript?
for (var key in obj) {
alert(key + ': ' + obj[key]);
}
答案 2 :(得分:2)
见以下网址
foreach equivalent of php in jquery?
或尝试
如果你想迭代一个对象,我会推荐JavaScript变体:
for (var key in obj) {
alert(key + ': ' + obj[key]);
}
你也可以像这样在jQuery中迭代对象: 注意!除非您认为这种语法更易于维护,否则这样做是毫无意义的。下面的语法比上面的标准JavaScript for-loop要多得多。
$.each(obj, function (key, value) {
alert(key + ': ' + value);
});
要迭代数组,这就是你在标准JavaScript中的做法(假设arr是数组):
for (var i = 0, l = arr.length; i < l; i++) {
alert(i + ': ' + arr[i]);
}
要在jQuery中执行此操作,您可以这样做:
$.each(arr, function (index, value) {
alert(index + ': ' + value);
});
答案 3 :(得分:2)
因为你存在两种方式。
首先,当数据在对象中时(例如,它在my_list中) 第二,当数据完全在数组中时(例如,它是my_array)
在任何情况下,您都可以使用JavaScript For ... In statement
示例:
<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]+"\n");
}
console.log(data);
data = '';
for(index in my_array) {
data += (index+'='+my_array[index]+"\n");
}
console.log(data);
</script>
在这两种情况下,控制台输出都是:
2=Mike
4=Peter
7=Sam
10=Michael