【问题标题】:combine two array each element and append to one array [duplicate]将每个元素组合两个数组并附加到一个数组[重复]
【发布时间】:2019-09-03 05:33:01
【问题描述】:

我有两个数组,如下所示。我需要将每个数据组合两个数组并附加到一个数组。例子是:

var d1 = ["1", "2", "3", "4", "5"]
var d2 = ["A", "B", "C", "D", "E"]
var d3  = [String]()

//O/P needed : ["1-A","2-B","3-C","4-D","5-E"]

任何帮助都会很棒。 谢谢

【问题讨论】:

  • 当数组长度不等时会发生什么?为什么数据源是这样格式化的?为什么不使用 struct 的单个数组而不是两个数组? 更重要的是 - 到目前为止你尝试过什么?

标签: ios arrays swift iphone xcode


【解决方案1】:

像这样使用 zip(_:_:)map(_:) 的组合而不是 d1d2

let d3 = zip(d1, d2).map({ $0.0 + "-" + $0.1})

print(d3) //["1-A", "2-B", "3-C", "4-D", "5-E"]

如果arrays 中的任何一个有额外的元素,那么在执行zip 操作时,这些额外的元素将被忽略。

【讨论】:

【解决方案2】:
var d1 = ["1", "2", "3", "4", "5"]
var d2 = ["A", "B", "C", "D", "E"]
var d3  = [String]()

//O/P needed : ["1-A","2-B","3-C","4-D","5-E"]
// works for diff length of d2
func mergArray(firstArray: [String], secondArray: [String]) -> [String] {
    for (index,val) in d1.enumerated() {
       guard index < d2.count else {
       d3.append(val)
       return d3
   }
   d3.append(val + "-" + d2[index])
}
   return d3
}

print(mergArray(firstArray: d1, secondArray: d2))

【讨论】:

【解决方案3】:

像这样做 -

for i in 0..< d1.count {
    d3.append(d1[i] + "-" + d2[i])
}
print(d3)

你会得到你想要的结果。

【讨论】:

  • 大小不一样怎么办?你的代码会导致崩溃。
  • 我回答了那个特定的问题,看起来很清楚这些数组的长度相同,是的,如果不是,那么我使用 zip。现在看来这很公平。
  • @Abhishek 你能帮我解决这个问题吗stackoverflow.com/questions/57926400/…
  • 找不到页面,该问题可能会被删除
猜你喜欢
  • 2017-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
相关资源
最近更新 更多