Lo que podrias hacer es:
1) obtienes un elemento de "a"
2) con ese elemento, lo buscas en "b"
3) si lo encuentras en "b", osea que existe en "b", lo quitas de "b", para borrar un elemento de un array en JS debes usar la funcion "splice", de esta forma:
array.splice( posicionElemento, cantidadDeElementosABorrarDesdeAqui ) => b.splice( j, 1 )
4) si no lo encuentras no pasa nada, la onda es quitar en "b" los elementos que estan en "a"
Por ejemplo algo asi:
var a = [ 'f', 'a', 'c', 'e' ],
b = [ 'a', 'b', 'c', 'd', 'e', 'f' ],
letter = '';
for( var i = 0, lengthA = a.length; i < lengthA; i+=1 ) {
letter = a[i];
for( var j = 0, lengthB = b.length; j < lengthB; j+=1 ) {
if( b[j] == letter ) {
b.splice( j, 1 );
}
}
}
El "incoveniente" en esta solucion es que "b" pasara a ser el resultado, osea lo que "b" originalmente contenia, se pierde, y solo le quedaran los elementos que no se repiten.
Aqui otra implementacion, pero especificamente enfocada en JS:
var pos = 0;
a.forEach( function( element ) {
while( ( pos = b.indexOf( element ) ) >= 0 ) {
b.splice( pos, 1 )
}
} );
Aqui hacemos uso de la funcion "array.indexOf()", cual sirve para saber en que posicion un elemento se encuentra ubicado en tal array. Ademas usamos el metodo "forEach" que invoca una funcion por cada elemento presente en este caso en "a", es una forma mas comoda de recorrer un array sin necesidad de usar un for loop.