我创建了Array
Dictionaries
:
let tempArray = [["id":"1","Name":"ABC"],["id":"2","Name":"qwe"],["id":"3","Name":"rty"],["id":"4","Name":"uio"]]
现在我必须创建一个Name
数组。
我所做的是:
var nameArray = [String]()
for dataDict in tempArray {
nameArray.append(dataDict["Name"]!)
}
但是还有其他有效的方法吗?
答案 0 :(得分:2)
您可以使用async function doAjax() {
return await $.ajax({
type: "GET",
url: "posts_replied_to.txt"
});
}
let lines = await doAjax()
lines = content.split('\n')
console.log(lines)
(而不是flatMap
),因为map
可以过滤掉flatMap
值(dict不具备密钥值的情况"名称"),即nil
数组将被定义为names
而不是[String]
:
[String?]
答案 1 :(得分:2)
使用compactMap
flatMap
为deprecated。
let tempArray = [["id":"1","Name":"ABC"],["id":"2","Name":"qwe"],["id":"3","Name":"rty"],["id":"4","Name":"uio"]]
let name = tempArray.compactMap({ $0["Name"]})
print(name)