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]]()
并附加到它,但最后它返回了空值[]
您可以在问题的后面添加一行吗?否则,请注意数组和字典都是结构,受影响时会被复制。如果您将参数作为参数传递给方法,并在方法内部对其进行修改,则返回时它仍然为空,因为只有复制的实例才会被修改。