【发布时间】:2017-07-17 16:21:21
【问题描述】:
我是使用 swift 3 和 xcode 8.3 的新用户。目前在控制台输出中面临过滤 2 数组/结构的问题,如下所示:
A_List : Optional([117, 115, 18])
B_List : Optional([{
URL = "169.jpeg";
categories = "A";
description = "description XXX";
height = 128;
id = 1;
likes = "1.00";
name = "Cake - Baked";
price = "13.78";
width = 128;
}, {
URL = "1622.jpeg";
categories = "A";
description = "Baked till golden";
height = 128;
id = 15;
likes = "1.00";
name = "Croissant";
price = "3.71";
width = 128;
}, {
URL = "11.jpeg";
categories = "A";
description = "description Crispy.";
height = 128;
id = 18;
likes = "1.00";
name = "Plain";
price = "2.65";
width = 128;
}, {
URL = "1622.jpeg";
categories = "A";
description = "A ";
height = 128;
id = 103;
likes = "1.00";
name = "America Pie";
price = "2.12";
width = 128;
}, {
URL = "11.jpeg";
categories = "B";
description = "Puff";
height = 128;
id = 115;
likes = "1.00";
name = "Puff";
price = "2.12";
width = 128;
}, {
URL = "168.jpeg";
categories = "C";
description = "description YYY";
height = 128;
id = 117;
likes = "1.00";
name = "Normal";
price = "3.18";
width = 128;
}])
我想将 B_List 完整信息返回为 var filtered_List = [AnyObject](),其中仅包含 A_List id 编号 117, 115, and 18,如下所示:
filtered_List : Optional([{
URL = "11.jpeg";
categories = "A";
description = "description Crispy.";
height = 128;
id = 18;
likes = "1.00";
name = "Plain";
price = "2.65";
width = 128;
}, {
URL = "11.jpeg";
categories = "B";
description = "Puff";
height = 128;
id = 115;
likes = "1.00";
name = "Mini Puff";
price = "2.12";
width = 128;
}, {
URL = "168.jpeg";
categories = "C";
description = "description YYY";
height = 128;
id = 117;
likes = "1.00";
name = "Normal";
price = "3.18";
width = 128;
}])
我尝试了一些代码并在 youtube 上阅读了教程,但不幸的是没有找到任何解决方案,并且仅限于 swift2 示例。
目前,我的代码尝试如下:
var filtered_List = [AnyObject]()
let fullrList = B_List?.map{$0["id"] as! String}.map{_ in A_List}
filtered_List.append(fullrList as AnyObject )
print("result :\(filtered_List)")
非常感谢专家可以在这里指导或提供您的解决方案。
【问题讨论】:
-
Swift 约定是使用 lowerCamelCase 作为变量名,而不是 snake_case,绝对不是 Upper_snake_case。此外,您的名称“A 列表”、“B 列表”绝对不会传达有关其内容的信息。我强烈建议你给更好的名字
-
@Peterhdd 不对不是代码的事物使用代码格式,例如版本或技术名称see this meta post
-
@Alexander 感谢您的善意建议。是的,我接受您的评论,并将在我的代码中做得更好。
-
@Peterhdd 感谢您的更正。赞赏。
-
@jmattheis,非常感谢您的评论
标签: arrays json uitableview swift3