从单词列表中创建对象(var name:[NSArray])
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从单词列表中创建对象(var name:[NSArray])相关的知识,希望对你有一定的参考价值。
我有一个简单的单词测试列表,例如:
土豚熊猫狗大象长颈鹿
我想把它变成一个格式为的对象:
var array: [NSArray] = [["Aardvark", false, 0], ["Bear", false, 1],["Cat", false, 2], ["Dog", false, 3], ["Elephant", false, 4], ["Giraffe", false, 5]]
因此第一个元素始终是列表中的单词,第二个元素始终为false,第三个元素始终是索引
我该怎么做呢?
答案
我会这样做,与Josh Robbins答案略有不同。
struct TestInfo {
var name : String
var trueOrFalse : Bool
var index : Int
}
.
var array: [TestInfo] = []
var animalNames = ["Dog","Cat","Bear","Aatdvark","Duck","Elephant"]
for (index,eachAnimal) in animalNames.enumerated() {
let element = TestInfo(name: eachAnimal, trueOrFalse: false, index: index)
array.append(element)
}
print(array)
另一答案
您可以将数据存储在struct
中,例如:
/// Test Elements
struct TestInfo {
var animalName: String
var trueOrFalse: Bool
var index: Int
}
在ViewController中,您将创建一个数组来存储这些:
//Array To Store The Test Elements
var testArray = [TestInfo]()
因此可以像这样填充您的数据:
override func viewDidLoad() { super.viewDidLoad()
//1. Create The Test Info
let setOne = TestInfo(animalName: "Aardvark", trueOrFalse: false, index: 0)
let setTwo = TestInfo(animalName: "Bear", trueOrFalse: false, index: 1)
let setThree = TestInfo(animalName: "Cat", trueOrFalse: false, index: 2)
let setFour = TestInfo(animalName: "Dog", trueOrFalse: false, index: 3)
let setFive = TestInfo(animalName: "Elephant", trueOrFalse: false, index: 4)
let setSix = TestInfo(animalName: "Giraffe", trueOrFalse: false, index: 5)
//2. Add It To The Test Array
testArray.append(setOne)
testArray.append(setTwo)
testArray.append(setThree)
testArray.append(setFour)
testArray.append(setFive)
testArray.append(setSix)
//3. Retrieve Values & Log The Results
let name = testArray[0].animalName
let trueOrFalse = testArray[0].trueOrFalse
let index = testArray[0].index
print("""
1st Animal Name = (name)
1st Animal True Or False Value = (trueOrFalse)
1st Animal Index = (index)
""")
}
这应该让你开始......
另一答案
结构中的数字似乎与数组索引相对应,这可能使它们变得多余。并且将所选状态存储在接近实际数据的位置可能不是正确的方式 - 名称数组是您的数据,而选定状态是此数据表示的一部分。
因此,您可以考虑将数组缩减为简单的字符串数组并添加一组索引,如下所示:
var selectedItems = Set<Int>()
要选择项目,只需将其索引添加到集合中:
selectedItems.insert(index)
要取消选择该项,您将从集中删除其索引:
selectedItems.remove(index)
套装是一个不错的选择,因为你不能多次添加一个项目。
以上是关于从单词列表中创建对象(var name:[NSArray])的主要内容,如果未能解决你的问题,请参考以下文章
使用 var 关键字在 Javascript 中创建对象时遇到问题