【问题标题】:How To Join Multiple array String Into single Array? [duplicate]如何将多个数组字符串加入单个数组? [复制]
【发布时间】:2019-08-08 14:09:32
【问题描述】:

我有来自 json 的数组:

var list = ["one"],["two"],["three"]

如何加入他们成为`["one","two","three"]

我正在使用来自 https://github.com/jriosdev/iOSDropDown 的下拉菜单

必须是:

// 要显示的数组列表。可以动态更改。

trfBankTujuan.optionArray = ["nama 1", "nama 2", "nama 3", "nama 4"]

我想从 JSON 中填充那些数组列表:

"data_transaction": [
        {
            "kode": "002",
            "nama": "nama 1"
        },
        {
            "kode": "011",
            "nama": "nama 2"
        },
        {
            "kode": "008",
            "nama": "nama 3"
        },
        {
            "kode": "009",
            "nama": "nama 4"
        }
]

var banknya: String = ""

class APITrf: NSObject {

class func BankList(completion: @escaping (_ error: Error?, _ banklikst: [Bank]?)->Void) {

    Alamofire.request(url, method: .get, parameters: nil, encoding: URLEncoding.default, headers: headers)
                .responseJSON { response in

                    switch response.result
                    {
                    case .failure(let error):
                        print(error)

                    case .success(let value):
                        let json = JSON(value)
                        print(json)

                        if let status = json["status"].string {
                            if (json["status"] == "00") {
                                print("status: \(status)" + " = sukses")
                                let dataBank = json["data_transaction"].array

                            }
                        } else {
                            if (json["status"] != "00") {
                                print("must return to login screen")
                            }
                        }
    for (index,subJson):(String, JSON) in json["data_transaction"] {

                            if let nama_Bank = subJson["nama_bank"].string {

                                banknya = nama_Bank
                                print(banknya)


                            }
                        }

然后我想把那些对象“banknya”放入:

import UIKit
import iOSDropDown

class AB: UIViewController {

   func dropDownBankList() {
      trfBankTujuan.optionArray = [banknya]
   }

}

【问题讨论】:

  • 我认为 OP 需要扁平数组而不是“加入多个数组”,因为他将其声明为一个变量。
  • @MohmmadS:这也被问及回答了——我添加了另一个指向重复目标的链接。
  • @MartinR 肯定大师,我只是觉得附加不是他需要的

标签: ios arrays swift


【解决方案1】:

考虑list的正确格式

你可以使用flatMap

 var list = [["one"],["two"],["three"]] 
 var flatted = list.flatMap{ $0 } // result : ["one", "two", "three"]

【讨论】:

  • 但我想让它成为 list = ["one","two","three"] 而不是 list = [["one"],["two"],["three "]]
  • var flatted = list.flatMap{ $0 } // 将它变成你想要在操场上使用它并检查 flatted 的结果
  • 我收到此错误消息“无法将类型 '[Character]' 的值分配给类型 '[String]'”
  • @flozgaillard:如果您在问题中发布有效代码会有所帮助。 var list = ["one"],["two"],["three"] 无法编译。
【解决方案2】:

这是一个使用

的解决方案

平面图

var theResult = list.flatMap {$0}

减少

var theResult = list.reduce([String](), { result, item in
    return result + item.reduce([String](), { $0 + [$1] })
})

forEach

var theResult = [String]()
list.forEach { item in
    item.forEach { subItem in
        theResult.append(subItem)
    }
}

【讨论】:

    猜你喜欢
    • 2013-06-07
    • 2020-07-24
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2021-10-09
    • 2013-12-16
    相关资源
    最近更新 更多