首页 > 解决方案 > 将数值数组的特定索引与 Swift 中的 Int 变量进行比较

问题描述

我正在开发的逻辑,书页和空闲页数组索引之间的比较。

freePageArr = ["1", "5", "6", "12", "14", "15"]

self.bookPage = 1
func checkingPay(_ bookPage: Int) {
        let freePage = bookDetail?.bookFreePageList
        let freePageArr = freePage?.components(separatedBy: ",")

        //fail logic....
        if <<I need code..!!>> {
            print("Hello!! Free Page.")
            print("currentPage :", self.bookPage)

        } else {
            print("Sorry!! Paid Page.")
            print("CurrentPage :", self.bookPage)
        }
    }

如果 free 的值pageArr与 的值相同self.bookPage,则打印print (" Hello !! Free Page. ")

如果 free pageArrindex 的值与 的值不同self.bookPage,我想打印print (" Sorry !! Paid Page. ")日志。

标签: iosswift

解决方案


您可以简单地使用contains(_:)onfreePageArr检查其中是否bookPage存在。

此外,由于components(separatedBy:)给出了arrayof String,您需要将其转换为Int arrayusingcompactMap(_:)以匹配bookPage其中的Int值。

func checkingPay(_ bookPage: Int) {
    let freePage: String? = bookDetail?.bookFreePageList //it must be like "1,5,6,12,14,15"

    if let freePageArr = freePage?.components(separatedBy: ",").compactMap({ Int($0) }) {
        if freePageArr.contains(bookPage) {
            print("Hello!! Free Page.")
            print("currentPage :", bookPage)
        } else {
            print("Sorry!! Paid Page.")
            print("CurrentPage :", bookPage)
        }
    }
}

推荐阅读