2012-09-14 57 views
2

可能重複:
Loop through array in JavaScript如何在Javascript中使簡單的PHP的foreach相當於?

我想在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

你可以做一個'爲(在myObjectHash VAR項)'或'for(var i = 0; i Shmiddty

+0

在最近版本的JS中有['forEach'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach),否則你將不得不做一個'for'循環。 – PeeHaa

回答

13

最接近的構建體是

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

而不是downvote的單一解釋?因爲你的代碼片段是最接近OP代碼的那個代碼片段,所以upvoted爲 –

+0

。 – Jocelyn

+1

這就是爲什麼我被3(一個刪除)downvotes困惑。我什至沒有問什麼時候有2. –

7

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]); 
} 
+1

對於使用一個額外的庫來做一些循環的小事。 – PeeHaa

+1

我認爲在你添加普通的javascript之前,你已經被低估了(而不是我)。 –

2

見下面鏈接

foreach equivalent of php in jquery?

或者嘗試

如果你想要遍歷一個對象,我會建議JavaScript的變種:

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

你也可以迭代o jQuery中的對象如下所示: 注意!除非您認爲此語法維護起來更簡單,否則這樣做毫無意義。下面的語法比上面的標準JavaScript,for-loop有更多的開銷。

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

要遍歷數組,你這是怎麼在標準的JavaScript這樣做(假設改編是數組):

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

要做到這一點在jQuery中,你可以做這樣的:

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

因爲你存在兩種方式。

首先當數據是在對象(例如,在它是在my_list) 和第二數據時正好是在陣列(例如,在它爲my_array)

在則可以使用JavaScript對於任何情況下...在聲明中

例子:

<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 

其實請閱讀http://www.w3schools.com/js/js_loop_for_in.asp

+0

+1鏈接到W3Schools! –