Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Filter an array using value from another array

Tags:

xcode

ios

swift

I need to filter Schedules[ ] Array using Dates[ ] Array where "date_id" == "schedule_date_id".

I need only those elements where date_id matches schedule_date_id and then reload the table. I need to show Schedules according to dates.

What is the Swift code for this?

Below is the JSON I have:

{
dates =     (
            {
        "date_date" = "2017-11-04";
        "date_id" = 4;
        "date_image" = "https://project-isdental-cammy92.c9users.io/api/images/schedule-days/day_1.png";
        "date_title" = "Day 1";
    },
            {
        "date_date" = "2017-11-05";
        "date_id" = 5;
        "date_image" = "https://project-isdental-cammy92.c9users.io/api/images/schedule-days/day_2.png";
        "date_title" = "Day 2";
    }
);
schedules =     (
            {
        "schedule_date" = "2017-11-04";
        "schedule_date_id" = 4;
        "schedule_description" = "Schedule 7";
        "schedule_end_time" = "14:00:00";
        "schedule_id" = 7;
        "schedule_image" = "https://project-isdental-cammy92.c9users.io/api/images/schedules/day_1.png";
        "schedule_location" = Mumbai;
        "schedule_start_time" = "11:00:00";
    },
            {
        "schedule_date" = "2017-11-04";
        "schedule_date_id" = 4;
        "schedule_description" = "Schedule 8";
        "schedule_end_time" = "14:00:00";
        "schedule_id" = 8;
        "schedule_image" = "https://project-isdental-cammy92.c9users.io/api/images/schedules/day_1.png";
        "schedule_location" = Mumbai;
        "schedule_start_time" = "11:00:00";
    },
            {
        "schedule_date" = "2017-11-04";
        "schedule_date_id" = 4;
        "schedule_description" = "Schedule 9";
        "schedule_end_time" = "14:00:00";
        "schedule_id" = 9;
        "schedule_image" = "https://project-isdental-cammy92.c9users.io/api/images/schedules/day_1.png";
        "schedule_location" = Mumbai;
        "schedule_start_time" = "11:00:00";
    },
            {
        "schedule_date" = "2017-11-05";
        "schedule_date_id" = 5;
        "schedule_description" = "Schedule 10";
        "schedule_end_time" = "14:00:00";
        "schedule_id" = 10;
        "schedule_image" = "https://project-isdental-cammy92.c9users.io/api/images/schedules/day_2.png";
        "schedule_location" = Mumbai;
        "schedule_start_time" = "11:00:00";
    }
);
}
like image 659
Shikha Sharma Avatar asked Jun 30 '26 20:06

Shikha Sharma


1 Answers

Use like this:

Swift 4

let filteredSchedules = schedules.filter { schedule in
    dates.contains(where: { $0["date_id"] as! Int == schedule["schedule_id"] as! Int }
)}
print(filteredSchedules)

Swift 3

let filteredSchedules = schedules.filter { schedule in
    dates.contains({ $0["date_id"] as! Int == schedule["schedule_id"] as! Int })
}
print(filteredSchedules)
like image 57
Vini App Avatar answered Jul 03 '26 16:07

Vini App



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!