Ios 如何使用for循环添加多个字典?

Ios 如何使用for循环添加多个字典?,ios,swift,loops,dictionary,Ios,Swift,Loops,Dictionary,我想在一个字典中添加多个字典。我有下一个循环: for(var i = 0; i < arrayLength; i++) { parameters["universityID"] = universityIDs[i] parameters["fieldOfStudy"] = fieldOfStudies[i] } 我不能尝试 newParameters = [ // for loop here ] 我怎样才能做到这一点?也许这是一个愚蠢的问题,但我只是太累了,找

我想在一个字典中添加多个字典。我有下一个循环:

for(var i = 0; i < arrayLength; i++) {
    parameters["universityID"] = universityIDs[i]
    parameters["fieldOfStudy"] = fieldOfStudies[i]
}
我不能尝试

newParameters = [
    // for loop here
]

我怎样才能做到这一点?也许这是一个愚蠢的问题,但我只是太累了,找不到解决方案=/

看来你想要的是一系列字典。如果是,请执行以下操作:

let universityIDs = [1,2,3,4]
let fieldOfStudies = ["some", "test", "studies", "data"]
var newParameters: [[Int: String]] = []
let arrayLength = universityIDs.count
for(var i = 0; i < arrayLength; i++) {
    let parameters: [Int: String] = [universityIDs[i]: fieldOfStudies[i]]
    newParameters.append(parameters)
}
让大学ID=[1,2,3,4]
让fieldOfStudies=[“一些”、“测试”、“研究”、“数据”]
var newParameters:[[Int:String]=[]
让arrayLength=大学ID.count
对于(变量i=0;i
您似乎希望最终得到一系列字典。如果是,请执行以下操作:

let universityIDs = [1,2,3,4]
let fieldOfStudies = ["some", "test", "studies", "data"]
var newParameters: [[Int: String]] = []
let arrayLength = universityIDs.count
for(var i = 0; i < arrayLength; i++) {
    let parameters: [Int: String] = [universityIDs[i]: fieldOfStudies[i]]
    newParameters.append(parameters)
}
让大学ID=[1,2,3,4]
让fieldOfStudies=[“一些”、“测试”、“研究”、“数据”]
var newParameters:[[Int:String]=[]
让arrayLength=大学ID.count
对于(变量i=0;i
您可以在创建新参数后向其添加任何内容,只要它声明为变量(关键字
var
,而不是创建常量的
let

在数组上迭代时,只需调用
appendElement()
newParameters
中添加一个新条目:

var newParameters = [[Int:String]]()

for(var i = 0; i < arrayLength; i++) {
    newParameters.append([universityIDs[i] : fieldOfStudies[i]])
}

// newParameters now contains [[1: "smth"], [2: "smth"]]
var newParameters=[[Int:String]]()
对于(变量i=0;i
您可以在创建新参数后向其添加任何内容,只要它声明为变量(关键字
var
,而不是创建常量的
let

在数组上迭代时,只需调用
appendElement()
newParameters
中添加一个新条目:

var newParameters = [[Int:String]]()

for(var i = 0; i < arrayLength; i++) {
    newParameters.append([universityIDs[i] : fieldOfStudies[i]])
}

// newParameters now contains [[1: "smth"], [2: "smth"]]
var newParameters=[[Int:String]]()
对于(变量i=0;i
如果您有两个阵列

let universityIDs = [1,2,3]
let fieldOfStudies = ["Technology", "Arts", "Math"]
你可以这样组合它们

let results = zip(universityIDs, fieldOfStudies).map { [$0.0:$0.1] } // [[1: "Technology"], [2: "Arts"], [3: "Math"]]
如果有2个数组

let universityIDs = [1,2,3]
let fieldOfStudies = ["Technology", "Arts", "Math"]
你可以这样组合它们

let results = zip(universityIDs, fieldOfStudies).map { [$0.0:$0.1] } // [[1: "Technology"], [2: "Arts"], [3: "Math"]]

请参阅此链接:-如果在循环的每次迭代中使用相同的键,则最终将得到
参数[“universityID”]=arrayLength-1
参数[“fieldOfStudy”]=arrayLength-1
。这个问题需要更清楚。我想知道为什么你需要一个字典数组,每个字典上都有一个条目,而不是一个包含所有条目的字典。请参见此链接:-如果你在循环的每个迭代中使用相同的键,那么你将得到
参数[“universityID”]=arraylelength-1
参数[“fieldOfStudy”]=arrayLength-1
。这个问题需要更清楚一些。我想知道为什么你需要一个字典数组,每个字典上都有一个条目,而不是一个包含所有条目的字典。我做了:
var parameters=[[String:String]]()
并附加到它,但最后它返回了空值
[]
您可以在问题的后面添加一行吗?否则,请注意数组和字典都是结构,受影响时会被复制。如果您将
参数作为参数传递给方法,并在方法内部修改它,则返回时它仍然为空,因为只有复制的实例会被修改。我这样做了:
var-parameters=[[String:String]]()
并附加到它,但最后它返回了空值
[]
您可以在问题的后面添加一行吗?否则,请注意数组和字典都是结构,受影响时会被复制。如果您将
参数作为参数传递给方法,并在方法内部对其进行修改,则返回时它仍然为空,因为只有复制的实例才会被修改。