【发布时间】:2019-02-27 12:32:46
【问题描述】:
我正在尝试编写一个以 arrayOne、arrayTwo 和 arrayThree 作为输入的函数。如果 arrayTwo 有任何 0 作为其最后一个元素,则该函数应该从数组中删除这些元素,以及从 arrayOne 中删除相同的元素。当我运行代码并尝试对其进行测试时,我收到错误消息:“由信号 4 终止”。
可能是什么问题?
var arrayOneNew = arrayOne
var arrayTwoNew = arrayTwo
var arrayThreeNew = arrayThree
var endElement = arrayTwoNew.last
if endElement == 0 {
var counter = arrayTwoNew.count
while arrayTwoNew[counter] == 0 {
var elementToBeRemoved = arrayTwoNew.remove(at: counter - 1)
var 2ndElementToBeRemoved = arrayOneNew.remove(at: counter - 1)
}
}
【问题讨论】:
-
arrayTwoNew.last 不是最后一个索引。这是最后一个元素。尝试打印出 endIndex 和计数器进行调试,您将能够看到发生了什么
-
ok 例如: var arrayOne = [1,2,3,4,5,6,7] var arrayTwo = [140,142,142,0,0,0,0] var arrayThree = [2000, 2000,2000,2000,2000,2000,2000] 我希望输出为 arrayOne = [1,2,3] var arrayTwo = [140,142,142] var arrayThree = [2000,2000,2000,]