【问题标题】:How to access differently nested string array swift 5如何访问不同的嵌套字符串数组swift 5
【发布时间】:2021-07-30 23:08:34
【问题描述】:

干得好,基本上我有这样的数组:

let imageArray = [ ["image0"] , ["image11","image12"] , ["image2"], ["image31","image32","image33"] ]

在这一点上,例如,我想将每个嵌套数组的第一项放入一个新数组中,如下所示:

var newArray = ["image0","image11","image2","image31"] 

我还想有一个条件,例如,如果单击“image31”,我们有一个新页面,显示第一个数组的每个图像,例如 ["image31", "image32", "image33"]

那么你能告诉任何想法如何实现这样的吗?

【问题讨论】:

    标签: ios arrays swift multidimensional-array


    【解决方案1】:

    你可以试试

    let res = imageArray.map { $0.first! }
    

    点击时使用索引来访问其他元素,比如从上面的索引 3 图像被点击然后使用

    let resImages = imageArray[clickedIndex] 
    

    编辑:

    let arr = ["images/product/2021-05-02T09-47-17.699Z-download (2).jpg"]
    
    let res = arr.map { $0[$0.range(of: "images/product/")!.upperBound...] }
            
    print(res)
    

    【讨论】:

    • 感谢关注,我更新了我的问题,在第二部分中,如果用户单击 newArray 的每个项目然后在新页面中显示与单击的图像相关的每个图像数组,我想要这个
    • set imageView tag = 你从上面设置的图像的索引res 然后使用点击的imageView的标签从上面获取resImages
    • 好的,我会试试的,再次感谢,祝你好运
    • 我有一个问题,当我使用你的解决方案时,我的意思是第一行,我的字符串是“images/product/2021-05-02T09-47-17.699Z-download (2) .jpg" 它只是返回给我这个字符串的第一个字符而不是所有字符串,我该怎么办?
    • 你需要2021-05-02T09-47-17.699Z-download (2).jpg吗?
    【解决方案2】:

    使用简单的数据结构(如数组)对复杂数据进行建模很少是最好的方法。

    在这种情况下,我将创建一个结构 ImageList,然后创建一个该结构的数组

    struct ImageList {
       let images: [String]
       var firstImage: String? {
           return self.images.first
       }
    }
    

    如果需要,您可以使用 map 从当前源创建数组

       imageListArray = imageArray.map { ImageList(images:$0) }
    

    现在您可以拥有与 ImageList 结构关联的索引 - imageListArray[i].firstImage! 是您想要的列表值,iageListArray[i].images 是您想要满足第二个要求的数组。

    【讨论】:

    • 你好兄弟你能说一下什么是imageListArray吗?因为它对我来说是未知的
    • 应该是 var imageListArray[ImageList] - 你还没有说你在用数组做什么,但这将是你的 tableview 或丢失视图或其他的数组。
    猜你喜欢
    • 2021-07-18
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2022-05-08
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2016-07-10
    相关资源
    最近更新 更多