一種不同的方法比vadian的。 vadian腳本的問題在於,如果劇本持續選取之前拍攝的項目,理論上腳本可以永久運行。因此,最好有一個沒有碰撞的解決方案。這需要花費更多的精力,因爲在每次拾取物品之後,必須從列表中刪除該值。由於在AppleScript中沒有簡單的命令來執行此操作,因此腳本必須「手動」執行此操作。
最簡單的方法是創建一個包含輸入列表索引的並行列表,在每次迭代中選擇一個隨機索引,並將其設置爲非整數值。這樣我們確保物品只被挑選一次。
set myList to {"Apples", "Bananas", "Oranges", "Grapes", "Turkey"}
set idxList to {}
-- first create a list with indexes
repeat with x from 1 to count myList
set end of idxList to x
end repeat
set newList to {}
repeat 3 times
-- pick a random index
set theIndex to some integer of idxList
-- add item to newlist based on picked index
set end of newList to item theIndex of myList
-- set the picked index to missing value so it will not be picked again
set item theIndex of idxList to missing value
end repeat
newList
一種更好的方式來解釋它是這樣的:設置MYLIST爲{「鮑勃」,「布萊恩」,「馬」,「約書亞」,「莎拉」,「喬治」}如列表 重複 \t顯示對話框的一些項目mylist end repeat我希望能夠做一個以上的隨機名稱,但不能重複。所以,我不想得到鮑勃鮑勃或薩拉薩拉喬治。我想得到鮑勃莎拉,或喬治布萊恩馬克,或我想要的許多,只是不重複。 – Jk42
如果答案解決了您的問題,請點擊旁邊的大號複選標記(✓)接受答案。 如果您發現其他答案有幫助,請投票給他們。接受和投票答案不僅有助於回答者,也有助於未來的讀者。請參閱[相關幫助中心文章](http://stackoverflow.com/help/someone-answers)。如果您的問題尚未得到充分解答,請提供反饋。 – mklement0