SwiftyJson - удалить пустые элементы из массива

У меня есть массив из ответа JSON. В этом массиве от 0 до 20 позиций. В любой позиции может быть изображение или видео. Из цикла я получаю URL с изображениями и видео. Иногда у меня было 8 изображений и 2 видео, но у меня был ответ - 8 URL изображений, 2 URL видео, 6 пустых URL видео. Как я могу удалить пустые URL-адреса видео?

edge.........   
  edges 
   0    
   node 
   __typename   "........"
   display_resources    
   0    {…}
   1    {…}
   2    {…}
   is_video     false
   edge.........{…}

   1    
   node 
 __typename "........"
   display_resources    
   0    {…}
   1    {…}
   2    {…}
   video_url      "https://...................fods1-1.fna.fbcdn.net/vp/64633261764d268afd5d6a654d845590/5A94EC04/t50.2886-16/27988152_1901827653461655_8604903370520797664_n.mp4"
   is_video  true
   edge.............    {…}

Мой код

var json = JSON(response.result.value ?? [])
...
if self.json["..........."].stringValue == ......... {
    if let slideShow = self.json["........"].array {
        for allMedia in slideShow {
            self............append(allMedia["node"][2]["src"].stringValue)
        }
        print("One of All Media \(self.graphSidecarImage[0])")
    }

    if let allVideo = self.json["........"][].array {
        for videos in allVideo {
            self.graphSidecarVideo.append(videos["node"]["video_url"].stringValue)
        }
        print("Video = \(self........)")
    }

} else ....

Мой ответ

One of All Media = 
https://...........fna.fbcdn.net/vp/873e7dd29985cbb359a6bed475b5eb4a/5B4BE8A4/t51.2885-15/e35/27877630_529424757457590_5205275138961965056_n.jpg


Video = ["",
“https://............fods1-1.fna.fbcdn.net./vp/4500643b92f7564ce0b1d03266bad3b8/5A963D84/t50.2886-16/27988152_1901827653461655_8604903370520797664_n.mp4”,
"",
“https://..............fods1-1.fna.fbcdn.net/vp/751ff5e4e64b0bb8e9f5766835bf64b8/5A96707B/t50.2886-16/28257257_152261638823479_2625135617605674147_n.mp4”,
"",
"",
"",
"",
"",
""]

1 ответ

Решение

Попробуй это:

    private func prepare_array()
    {
        var array = ["", "not empty 1", "", "", "", "not empty 2", "not empty 3"]
        array = array.filter({ $0 != ""})
        print(array) 
        //["not empty 1", "not empty 2", "not empty 3"]
    }
Другие вопросы по тегам