2016-02-14 103 views
0

我想要做的,是從陣列打印隨機元素,例如繼承人代碼:打印隨機元素

myTable = { "one", "two", "three","four"} 

- 打印此:一,三,四

+0

歡迎來到StackOverflow。請花點時間閱讀幫助中心的指南,以便在網站上提問。 SO不是代碼編寫服務或教程網站。你應該做一些基礎研究,並展示你的嘗試,並解釋它是如何工作的。這在你的問題中沒有。 –

+0

你能定義應該打印多少個元素嗎?或者你的意思是打印隨機順序的隨機元素和從0到n的隨機數量,其中n是元素的數量? – Rochet2

回答

1

隨機打印元素很簡單 - print(myTable[math.random(#myTable)]) - 但如果您需要使每個打印元素都是唯一的,那麼您最好將數組中的元素進行洗牌並逐個打印生成的元素。您可以檢查這個想法SO answer

+0

感謝您的回答,但我實際上需要的元素不是元素(多個)打印出來。請舉例說明一下嗎? – Promeheus

+0

你可以把'print'放在一個循環中:'爲i = 1,3打印(myTable [math.random(#myTable)])end'。請注意,一些隨機挑選的元素可能是相同的。 –

1

如果你想元素的施氮量,你需要使用一個循環:如果你要求有比在表中多個元素

local myTable = { "one", "two", "three","four"} 
local result = {} 
for i=1,3 do -- N here, e.g 3 if you want 3 elements 
    result[i] = table.remove(myTable,math.random(#myTable)) 
end 
print(table.concat(result,", ")) 
-- "four, two, three" as an example 

的代碼會報錯。如果您想稍後重新使用表格,則必須將其複製,因爲此代碼實際上從表格中刪除了元素。