Convert Custom Post Data to Javascript Array for Autocomplete

$args = array( 'post_type' => 'promo' );
$loop = new WP_Query( $args );
$promos = array();
while ( $loop->have_posts() ) : $loop->the_post();
    foreach((get_the_category()) as $category);
    $promos[] = $category->cat_name. ' - ' .get_the_title();
endwhile;

echo 
    '<script>
        jQuery(document).ready(function($) {
            var promoList=".json_encode($promos) .";
            $( "#auto-promo" ).autocomplete({
                source: promoList
            });
        });
    </script>';