Ya veo; aunque, por el resultado del ejemplo que pusiste, el resultado debería ser "mundo world amigos buddy" ya que "hola" y "bye" se repiten en ambas, lo que es equivalente a quitar las oraciones en rojo que eliminaste de los dos textos de tu ejemplo.
Dadas así las condiciones, lo que habría que hacer es, primero; recorrer al arreglo número uno, verificar en cada iteración que cada palabra no se encuentre en el arreglo número dos y, a las que cumplan dicha condición, asignarlas a un tercer arreglo. Luego, se repite el proceso pero esta vez leyendo los datos del arreglo número dos y comparándolos con los del arreglo número uno.
Código Javascript
:
Ver originalvar a = "hola mundo bye world",
b = "hola amigos bye buddy",
ax = a.split(" "),
bx = b.split(" "),
c = [];
ax.forEach(function(w){
if (b.indexOf(w) < 0){
c.push(w);
}
});
bx.forEach(function(w){
if (a.indexOf(w) < 0){
c.push(w);
}
});
console.log(c.join(" ")); //mundo world amigos buddy
DEMO