在swift中将字符串更改为变量

时间:2017-05-16 06:39:31

标签: arrays swift string

我的array格式为

var array = ["cat1", "cat2", "cat3"]

我希望能够随机选择其中一个元素,其中每个元素都是另一个元素的实际名称。

所以我也有

var cat1 = ["Q1", "Q2", "Q3"]基本上是一系列问题。

这是cat2cat3的类似格式。

现在我想要这个的原因是随机选择一个问题主题,然后从所选数组中选择一个问题,我的问题是我不知道如何以编程方式使用,例如,

cat2[1]

我基本上想要显示所选元素的内容。

这一切都可能吗?我一直试图让它好好玩一段时​​间:(

谢谢!

5 个答案:

答案 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中随机选择一个对象,其中一个对象将是cat1cat2cat3中的一个,代表问题数组

编辑:似乎这些是您的实例变量,如果它在视图控制器中,则在viweDidLoad中初始化它们或使用以下代码

var array = [["Q1", "Q2"],
             ["Q10", "Q11"],
             ["Q20", "Q21"]]

答案 2 :(得分:0)

type可以使用[[String]]或为其创建自定义类。

要使用[[String]],请先声明数组cat1cat2cat3

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);

演示click here