我有以下代码,我试图根据 ChaptersToRead 打印出 booksAssigned 和 booksAssignedDue
var books:[String] = ["Hobbit","LOTR","Fellowship"]
var chaptersToRead:[[Int]] = [[1],[1,2],[2]]
var booksAssigned:[String] = []
var booksAssignedDue:[String] = []
for (index, chapters) in chaptersToRead.enumerated() {
if chapters.contains(1) {
booksAssigned.append(books[index])
}
else
{
booksAssignedDue.append(books[index])
}
}
我期望的输出是这样的
print(booksAssigned) = ["Hobbit","LOTR"]
print(booksAssignedDue) = ["LOTR","Fellowship"]
但是我明白了
print(booksAssigned) = ["Hobbit","LOTR"]
print(booksAssignedDue) = ["Fellowship"]
我做错了什么?
最佳答案
试试这个:
for (index, chapters) in chaptersToRead.enumerated() {
if chapters.contains(1) {
booksAssigned.append(books[index])
}
//You should not use `else` here.
if chapters.contains(2) {
booksAssignedDue.append(books[index])
}
}
如果在marked处使用else
,则添加到booksAssigned
的书不能添加到booksAssignedDue
。
关于arrays - 如何完全遍历数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41320740/