作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将一个整数值数组分配给对象数组的相应属性。
class MyClass {
var propint: Int = 0
var propdbl: Double = 0.0
var propstr: String = ""
} // MyClass
var arrint: [Int]()
var arrobj: [MyClass]()
一种方法是循环遍历整数数组 (arrint),并将值分配给相应对象数组元素的属性 propint。
我想知道是否有一个更有效、更优雅的解决方案来完成这项任务,例如。就像array.map,如果是的话,它会是什么样子。
--Sil68
最佳答案
我不确定效率。正如 @Ryan 所说,所有内置函数方法都只是使用循环来处理数组。
话虽如此,你可以做这样的事情......
let updatedObjectArray = zip(arrint, arrobj).map {
number, object -> MyClass in
object.propint = number
return object
}
不过你在这里必须小心。通过使用类(而不是结构),您将无意中编辑原始数组。
无论如何,这将压缩两个数组,迭代它们,然后将它们映射到包含更新对象的数组上。
附注:为变量选择更好的名称。即使是在 Stack Overflow 问题中。使用像 arrint
或 arrobj
或 propint
这样的变量名只能做两件事。让回答问题变得困难,因为自动更正想要改变所有问题。并且导致阅读时难以理解。我知道它是一个属性和一个 int (这就是代码所说的)。这个名字应该告诉我为什么它是一个属性和一个整数。
关于arrays - 如何在 Swift 中将 int 数组分配给对象数组的相应属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40729873/
我是一名优秀的程序员,十分优秀!