Eliminar elementos de una matriz de objetos basados en valores duplicados de múltiples claves

Tengo una serie de objetos como este:

var arr = [
    { type_id: "3", full_empty:"true", quantity:1},
    { type_id: "3", full_empty:"true", quantity:1},
    { type_id: "9", full_empty:"true", quantity:4},
    { type_id: "9", full_empty:"false", quantity:4},
    { type_id: "9", full_empty:"true", quantity:4},
    { type_id: "9", full_empty:"true", quantity:4},
    { type_id: "9", full_empty:"true", quantity:4}
];

Quiero eliminar los duplicados que tengan el mismotype_id ylleno vacío valores. El resultado debería verse así:

var arr = [
    { type_id: "3", full_empty:"true", quantity:1},
    { type_id: "9", full_empty:"true", quantity:4},
    { type_id: "9", full_empty:"false", quantity:4},
];

He buscado y encontrado alguna solución, pero algunas de ellas son para eliminar claves duplicadas o para eliminar duplicados basados en el valor duplicado de una sola clave. Algunas requieren bibliotecas externas. También hay algunas soluciones que no puedo entender. ¿Hay alguna manera fácil de hacer esto en JavaScript simple?

Editar para comprender mejor - He leído estopregunta . La respuesta aceptada para esa pregunta es encontrar duplicación para una sola clave. En mi caso, tengo que encontrar la duplicación para varias claves.

Respuestas a la pregunta(9)

Su respuesta a la pregunta