el codigo se puede mejorar sin el uso de un bucle. tomando la misma idea de tu codigo,
Código:
texto = texto.split(' '); // divide la cadena por espacios ;
texto.pop(); // remueve el ultimo elemento del array ;
texto.join(' '); // unir todos los elementos creando un string ;
no obstante, tu propuesta no deja de ser una solucion. solo que imagina si el texto es demasiado largo, el script podria demorar mas tiempo; aunque ese tiempo es medido en milisegundos.