2010-05-28 30 views
1

我在動作腳本中使用字典作爲隊列排序,仍然將大部分時間作爲關聯容器讀取,但我需要一次循環才能遍歷整個字典,例如(var key:隊列中的字符串)。在這個for循環中,我對元素執行一些操作,然後調用該鍵上的delete。獲取動作腳本字典中的鍵

我的問題是,我想在獲取此隊列中的下一個元素之前等待事件。基本上我的for循環運行速度太快。我想一直獲取下一個鍵,但我知道沒有內置方法。

我認爲的一個解決方案是在循環中添加一箇中斷,因爲for .. in會自動獲取下一個鍵,但它會是一個總是執行一次的循環,只是爲了獲取下一個鍵。這聽起來有點直觀。

我希望我的問題很有意義,我真的希望找到比我目前有更好的點子。謝謝你的幫助!

Rudy

+0

爲了簡化,我需要遍歷字典。到目前爲止,我正在使用for ... in,但問題是我需要等待EventListener發生的事件發生在處理第二個元素之前。問題是如何獲得「下一個關鍵」,類似於...在,但不用於......請在? 謝謝。 – Rudy 2010-05-28 19:35:23

回答

0

哈哈,這確實是一個有趣的問題。似乎沒有任何方法可以從字典中檢索鍵列表,而不是您所概述的方法。另一種方法是在第一次運行時緩存密鑰列表,但這可能會失去同步並且很不整潔。

我想我的主要問題是爲什麼你不能做你想做的事情?如果你需要2個值(例如字符串),那麼只需製作一個對象列表:)

+0

感謝您的回答。 會發生什麼是我存儲一個引用對象的ID。大多數情況下,我傳入一個ID並查找對象(所以我真的將它用作關聯容器)。但有時我需要迭代,所以它變成了一個真正的隊列/數組,並且它必須按照元素的順序排列。爲了增加複雜性,密鑰當然是唯一的,它們從0開始遞增整數,但其中一些條目可能已被刪除。我們可以使用鍵「0」,「10」,「11」等元素...這使得我可能會慢慢地使用整數來迭代 – Rudy 2010-05-28 20:40:35

+0

。所以爲了簡單起見,鍵是一個唯一的整數值,用於查找對象,但也是對象的一部分。我希望這解釋了爲什麼我不使用列表。 – Rudy 2010-05-28 20:41:50

+0

我明白了。如果你真的需要的話,你總是可以維護一個ID列表。否則我認爲你是正確的,你需要做一個...在其中只有一次:) – oedo 2010-05-28 21:11:01