Arrays Swift 5:如何更新数组中的值?

Arrays Swift 5:如何更新数组中的值?,arrays,swift,swift5.1,Arrays,Swift,Swift5.1,我试图更新数组数组中的值,但我猜缓冲区中的for项必须在缓冲区中复制该项,而不是提供对原始项的引用。除了某种形式的for i=..{buffer[i][3]='Moved'}之外,还有其他方法可以做到这一点吗 一种解决方案是枚举数组以同时包含索引 for (index, item) in buffer.enumerated() { if moved.contains(where: {$0[2] == item[2]}) { switch item[

我试图更新数组数组中的值,但我猜缓冲区中的for项必须在缓冲区中复制该项,而不是提供对原始项的引用。除了某种形式的for i=..{buffer[i][3]='Moved'}之外,还有其他方法可以做到这一点吗

一种解决方案是枚举数组以同时包含索引

    for (index, item) in buffer.enumerated() {
        if moved.contains(where: {$0[2] == item[2]}) {
            switch item[3] {
            case "Removal":
                buffer[index][3] = "Moved(out)"
            case "Addition":
                buffer[index][3] = "Moved(in)"
            default:
                break
            }
        }
    }
对于缓冲区中的i,索引是一条路,不。斯威夫特就是这样。但是您可以组成一个不同的updatedBuffer数组,将for循环中的每一项都添加到该数组中,该循环可以继续使用。
    for (index, item) in buffer.enumerated() {
        if moved.contains(where: {$0[2] == item[2]}) {
            switch item[3] {
            case "Removal":
                buffer[index][3] = "Moved(out)"
            case "Addition":
                buffer[index][3] = "Moved(in)"
            default:
                break
            }
        }
    }