【问题标题】:How to get data from arrays in an array in swift如何快速从数组中的数组中获取数据
【发布时间】:2021-01-19 07:25:50
【问题描述】:

我正在尝试从我的数组中获取数据

假设我有这样的数据:

[cobaCobaWS.SpecData(lbl1: 1, lbl2: 2, lbl3: 3, lbl4: 4), cobaCobaWS.SpecData(lbl1: 5, lbl2: 6, lbl3: 7, lbl4: 8)]

我正在尝试使用for 循环来访问其中的每个数组,但我不能。看看我下面的代码:

struct SpecData {
     var lbl1: Int
     var lbl2: Int
     var lbl3: Int
     var lbl4: Int
}

var txtFieldArray = [SpecData]()

for arr in txtFieldArray {
        coreNumber = Double(txtFieldArray[0].lbl1)
        machineNumber = txtFieldArray[0].lbl2
        userNumber = txtFieldArray[0].lbl3
        rdsNumber = txtFieldArray[0].lbl4
    }

数组的数量将是动态的,因为用户可以输入他们想要的数字。 我希望我可以像这样把arr 放在里面:

coreNumber = Double(txtFieldArray[arr].lbl1)
machineNumber = txtFieldArray[arr].lbl2
userNumber = txtFieldArray[arr].lbl3
rdsNumber = txtFieldArray[arr].lbl4

之后我想将这些数字放入另一个函数中。所以我希望能够读取数组中的每个数组,但我不能 我在想可能是因为我的数组来自结构? 有人可以帮我吗?

提前谢谢你

【问题讨论】:

  • 不清楚你想对数组中的值做什么,到目前为止你得到的答案只是覆盖了看起来非常错误的每次迭代的结果。也许举个例子,比如lbl1,在你的样本中是第一个 1 然后是 5,你想用 1 和 5 做什么?
  • 你说得对。我可以继续,但又卡住了。所以可以说我像我的例子一样在数组中有数组。我想从每个数组中获取标签 1,2,3,4 的值并将其处理到另一个 function 并计算它们以获得结果。我该怎么做?
  • 到目前为止,这是我所做的:我创建了 coreNumbermachineNumberuserNumberrdsNumber 等变量。这些将是进入计算函数之前的临时变量。也许我可以制作这样的流程: [[array],[array]] --> 从每个数组中获取值并放入变量中 --> 在函数中计算 --> 输出/结果
  • 抱歉有点长,我尽量解释一下
  • 那么你应该从循环内部调用函数,for arr in txtFieldArray { someFunc(core: Double(arr.lbl1), machine: arr.lbl2, user: arr.lbl3, rds: arr.lbl4) }

标签: ios arrays swift for-loop


【解决方案1】:

简单多了,arr是每次迭代的当前元素

for arr in txtFieldArray {
    coreNumber = Double(arr.lbl1)
    machineNumber = arr.lbl2
    userNumber = arr.lbl3
    rdsNumber = arr.lbl4
}

请注意,...Number 变量最终将只包含数组中最后一项的值。实际上循环是没有意义的。

【讨论】:

    【解决方案2】:

    你可以用更多Swifty的方式来做:

     txtFieldArray.forEach {
          coreNumber.append(Double($0.lbl1))
          machineNumber.append($0.lbl2)
          userNumber.append($0.lbl3)
          rdsNumber.append($0.lbl4)
      }
    

    【讨论】:

    • 这确实是Swift 方式,但为什么这对我不起作用?它说:'Double' has no member 'append' 类型的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    相关资源
    最近更新 更多