How to remove a sub-menu using walker hooks/filters without relying on a custom walker?

best and easy way to hide submenu is to use css

.sub-menu {
   display: none !important;
}

Or you can use ‘depth’=>1

   `wp_nav_menu( array( 'menu_id'=>'nav', 'theme_location'=>'header-menu' , 'depth' => 1) );

or create a function to set the ‘depth’=>1 for a perticular menu. place this code in your theme function.php

  add_filter( 'wp_nav_menu_args', 'remove_my_header_dropdown', 1, 1 );
  function remove_my_header_dropdown( $args )
   {
    //lookup theme_location ie: top-menu
    if ( isset( $args['theme_location'] ) && 'top-menu' == 
    $args['theme_location'] ) {
    $args['depth'] = 1; //levels of the hierarchy are to be included
    }

    return $args;
}

`
Hope that works for you