2011-03-02 49 views
0

的數組我有一個數組,充滿自己的價值觀像:迭代在JavaScript

$('#list input:checked').each(function() { 
    deleteRecordIdsStr.push($(this).attr('name')); 
}); 

我用我的數組:

deleteRecordIdsStr = deleteRecordIdsStr.join("-"); 

所以我有這樣的一個數組。讓我們接受我一開始就推10,20,30,然後我加入。

我如何可以遍歷數組,並再次獲得10,20和30?

回答

2
var ids = deleteRecordIdsStr.split("-"); 

split是一個String方法,它創建一個數組。

和迭代將是:

for (var i = 0, l = ids.length; i <l; i++){ 

    //something with ids[i] 
} 
+0

雖然你可能想改變你的數組變量名稱... – Yellowfog 2011-03-02 12:29:00

+0

我同意和改變的例子 – madeinstefano 2011-03-02 12:33:46

+0

-1爲循環不garantuee秩序。 – Raynos 2011-03-02 12:34:35

2

「標準」方法是使用一個for循環:

for (var i = 0, len = deleteRecordIdsStr.length; i < len; i++) { 
    alert(deleteRecordIdsStr[i]); 
} 

但是jQuery的還提供了一種each方法用於陣列(和陣列狀對象):

$.each(deleteRecordIdsStr, function(item, index) { 
    alert(item); 
}); 
+0

你能舉一個例子使用情況(當然,在列表提醒的項目?) – kamaci 2011-03-02 13:36:08

1

你可以使用jQuery的每個函數來輕鬆遍歷它們。

$.each(deleteRecordIdsStr.split('-'), function() { 
    // this = 10, 20, 30 etc. 
}); 

http://api.jquery.com/jQuery.each/

+0

-1沒有理由使用jQuery這一點。 – Raynos 2011-03-02 12:36:19

+0

@Raynos在我看來,它變得更清潔,因爲我們使用jQuery是沒有問題的(見標籤)。但當然它和for循環一樣。這是我猜想的味道問題。 – 2011-03-02 12:46:08

+0

我只是看不出有什麼理由要抽象出'Array'上的'for'循環。無可否認,這是一種有效的風格選擇。它感覺非常沒有必要。特別是當他關心訂單時,你不應該使用無序的每個循環。 – Raynos 2011-03-02 13:02:44