首页 > 解决方案 > 如何更改结构数组中的数据?

问题描述

我的代码如下所示,

struct RegistrationInformation {
    let leftTitle: String
    let rightTitle: String

}

struct RegisterData{
    let vValueL : String
}
var regDatas : [RegistrationInformation] = []

       for i in 0...3 {
            regDatas.append(RegistrationInformation(leftTitle: regData[i].vValue, rightTitle: ""))
        }
        for i in 4...7 {
            regDatas.append(RegistrationInformation(leftTitle: "", rightTitle: regData[i].vValue))
        }

//output of regDatas is 

       [Datas.RegistrationInformation(leftTitle: "line 1", rightTitle: ""),
        Datas.RegistrationInformation(leftTitle: "line3", rightTitle: ""),
        Datas.RegistrationInformation(leftTitle: "line5", rightTitle: ""),
        Datas.RegistrationInformation(leftTitle: "line7", rightTitle: ""),
        Datas.RegistrationInformation(leftTitle: "", rightTitle: "line2"),
        Datas.RegistrationInformation(leftTitle: "", rightTitle: "line4"),
        Datas.RegistrationInformation(leftTitle: "", rightTitle: "line6"),
        Datas.RegistrationInformation(leftTitle: "", rightTitle: "line8")]
      

我想要的就像下面的regDatas

  [Datas.RegistrationInformation(leftTitle: "line 1", rightTitle: "line2"),
        Datas.RegistrationInformation(leftTitle: "line3", rightTitle: "line4"),
        Datas.RegistrationInformation(leftTitle: "line5", rightTitle: "line6"),
        Datas.RegistrationInformation(leftTitle: "line7", rightTitle: "line8")]

我想更改 regDatas 数组结构中的数据位置。我们该怎么做谢谢

标签: iosswiftstruct

解决方案


struct RegistrationInformation {

    let leftTitle: String
    let rightTitle: String

}


struct RegisterData{

    let vValueL : String

}


var regData: [RegisterData] = [
    RegisterData(vValueL: "line1"),
    RegisterData(vValueL: "line2"),
    RegisterData(vValueL: "line3"),
    RegisterData(vValueL: "line4"),
    RegisterData(vValueL: "line5"),
    RegisterData(vValueL: "line6"),
    RegisterData(vValueL: "line7"),
    RegisterData(vValueL: "line8")
]

func compressData(elements: [RegisterData]) -> [RegistrationInformation]{
    var regDatas : [RegistrationInformation] = []
    for i in 0..<elements.count {
        if i != (elements.count-1){
            regDatas.append(RegistrationInformation(leftTitle: regData[i].vValueL, rightTitle: regData[i+1].vValueL))
        }else{
            regDatas.append(RegistrationInformation(leftTitle: regData[i].vValueL, rightTitle: ""))
        }
    }
    return regDatas
}

print(compressData(elements: regData))

推荐阅读