我的array
格式为
var array = ["cat1", "cat2", "cat3"]
我希望能够随机选择其中一个元素,其中每个元素都是另一个元素的实际名称。
所以我也有
var cat1 = ["Q1", "Q2", "Q3"]
基本上是一系列问题。
这是cat2
和cat3
的类似格式。
现在我想要这个的原因是随机选择一个问题主题,然后从所选数组中选择一个问题,我的问题是我不知道如何以编程方式使用,例如,
cat2[1]
我基本上想要显示所选元素的内容。
这一切都可能吗?我一直试图让它好好玩一段时间:(
谢谢!
答案 0 :(得分:1)
You can use it like this--
var cat1 = ["Q1", "Q2", "Q3"]
var cat2 = ["Q4", "Q5", "Q6"]
var cat3 = ["Q7", "Q8", "Q9"]
var array = [cat1, cat2, cat3]
print(array[0][0])
print(cat[1])
-------------------
the answer would be :--- Q1
答案 1 :(得分:0)
为什么不使用数组,例如
var cat1 = ["Q1", "Q2"]
var cat2 = ["Q10", "Q11"]
var cat3 = ["Q20", "Q21"]
var array = [cat1, cat2, cat3]
从array
中随机选择一个对象,其中一个对象将是cat1
,cat2
或cat3
中的一个,代表问题数组
编辑:似乎这些是您的实例变量,如果它在视图控制器中,则在viweDidLoad
中初始化它们或使用以下代码
var array = [["Q1", "Q2"],
["Q10", "Q11"],
["Q20", "Q21"]]
答案 2 :(得分:0)
type可以使用[[String]]
或为其创建自定义类。
要使用[[String]]
,请先声明数组cat1
,cat2
和cat3
:
let cat1 = [...]
let cat2 = [...]
let cat3 = [...]
然后你就这样做了:
let array = [cat1, cat2, cat3] // without the ""s!
有关如何选择随机项目,请参阅this post。
您基本上从array
中选择一个随机项,将结果放入名为randomTopic
的数组或其他任何内容中,然后从randomTopic
中选择另一个随机项。
或者,您可以创建一个类型来存储问题。
struct Topic {
let questions: [String]
}
然后你创建一个Topic
数组,即[Topic]
并执行相同的操作。
答案 3 :(得分:0)
您可以拥有一组数组而不是Strings
。例如:
var cat1 = ["Q1", "Q2", "Q3"]
var cat2 = ["Q1", "Q2", "Q3"]
var cat3 = ["Q1", "Q2", "Q3"]
var array = [cat1, cat2, cat3]
或二维数组:
var array = [["Q1", "Q2", "Q3"], ["Q1", "Q2", "Q3"], ["Q1", "Q2", "Q3"]]
然后你可以随机选择一个“行”,然后从中选择问题:
var question = array[randomNumber][questionNumber]
另一种选择是使用Dictionary
。然后你将有这个结构:
var dict = ["cat1" : ["Q1", "Q2", "Q3"],
"cat2" : ["Q1", "Q2", "Q3"],
"cat3" : ["Q1", "Q2", "Q3"]]
答案 4 :(得分:0)
请在下面的代码中查看演示。
/* DECLARING ALL THE QUESTION ARRAYS */
var cat1 = ["Q1", "Q2", "Q3", "Q4", "Q5"],
cat2 = ["Q6", "Q7"],
cat3 = ["Q8", "Q9", "Q10", "Q11", "Q12", "Q13"],
/* DECLARING ALL THE QUESTION ARRAYS INTO ANOTHER SINGLE ARRAY */
array = [cat1, cat2, cat3];
/* SELECTING WHICH QUESTION ARRAY TO PICK EITHER CAT1, CAT2 OR CAT3 USING MATH RONDOM FUNCTION */
var whichQuestionArray = array[Math.floor(Math.random() * array.length)],
/* PICKING WHICH QUESTION TO SHOW FROM ABOVE ANSWER */
selectedQuestion = whichQuestionArray[Math.floor(Math.random() * whichQuestionArray.length)];
/* PRINTING THE OUTPUT IN THE CONSOLE */
console.log("Selected Question - " + selectedQuestion);