如何在多向数组中附加值

时间:2019-04-15 03:33:22

标签: arrays swift

我正在读取由不同信标生成的一些值,比方说信标1和信标2。我想分别收集每个信标的值。

我认为,如果有一种使用where语句的方式会更容易,例如 在beacon = 1时获取值,然后在beacon = 2时获取值

据我了解: 首先,我创建了多向数组:

var values = [[Int]]()
var tempBeacon = [Int]

然后,一个for循环为i信标收集一些值:


for i in 0...beaconCount-1 {
   let beacon = beacons[i]
   values[i] = tempBeacon.append(beacons[i].value)
}

谢谢大家,请原谅我的编程技能。

1 个答案:

答案 0 :(得分:2)

我倾向于将这个问题当作数组的字典来处理。字典中的每个键都将代表信标,并且存储在每个键处的数组将包含该信标的值。使用字典可以轻松找到需要为其添加新条目的信标。

这是操场上的实用示例:

func addBeaconEntry(beaconName: String, newValue: Int) {
    if beaconData[beaconName] == nil {
        // Beacon is not yet in dictionary, so we create an array
        beaconData[beaconName] = [Int]()
    }
    beaconData[beaconName]?.append(newValue)
}

// Dictionary of array of integers for beacon values
var beaconData = [String: [Int]]()
addBeaconEntry(beaconName: "beacon 1", newValue: 10)
addBeaconEntry(beaconName: "beacon 2", newValue: 20)
addBeaconEntry(beaconName: "beacon 3", newValue: 30)
addBeaconEntry(beaconName: "beacon 1", newValue: 1120)

print(beaconData)
print("Data for beacon 1:")
print(beaconData["beacon 1"] ?? [0])