Removendo elementos de uma matriz de objetos com base em valores duplicados de várias chaves

Eu tenho uma variedade 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}
];

Eu quero remover as duplicatas com o mesmotype_id ecompleto vazio valores. O resultado deve ficar assim -

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},
];

Eu procurei e encontrei alguma solução, mas algumas delas são para remover chaves duplicadas ou para remover duplicatas com base no valor duplicado de apenas uma chave. Algumas bibliotecas externas necessárias. Também existem algumas soluções que não consigo entender. Existe alguma maneira fácil de fazer isso em JavaScript simples?

Editar para entender melhor - eu li issoPergunta, questão . A resposta aceita para essa pergunta é encontrar duplicação para apenas uma chave. No meu caso, tenho que encontrar a duplicação para várias chaves.

questionAnswers(9)

yourAnswerToTheQuestion