I can think in getting all components, then filter only those which are task (they begin with "BEGIN:VTODO") and then looking one by one for those which doesn't have "DUE:" in the iCalendar data? (this could be made capturing "DUE:(.-)\n", and if it's null then it doesn't have a due date)
The events in the table can be removed if you need a short table (in
stackoverflow.com/questions/12394841/safely-remove-items-from-an-array-table-while-iterating there is a very good way to do this in a O(n) complexity)