Cómo filtrar la matriz cuando el valor de la clave del objeto está en la matriz

Tengo un modelo de matriz como a continuación:

records:[{
    "empid":1,
    "fname": "X",
    "lname": "Y"
},
{
    "empid":2,
    "fname": "A",
    "lname": "Y"
},
{
    "empid":3,
    "fname": "B",
    "lname": "Y"
},
{
    "empid":4,
    "fname": "C",
    "lname": "Y"
},
{
    "empid":5,
    "fname": "C",
    "lname": "Y"
}
]

Ahora tengo una serie de vacíos[1,4,5].

Así que ahora necesito filtrar la primera matriz que contiene todas las claves en mi segunda.

Salida:

records:[{
    "empid":1,
    "fname": "X",
    "lname": "Y"
},
{
    "empid":4,
    "fname": "C",
    "lname": "Y"
},
{
    "empid":5,
    "fname": "C",
    "lname": "Y"
}
]

Puedo hacer esto usando unforEach incluyeteangular pero como tengo más de 100 registros en mi objeto modelo. Necesito una sugerencia sobre cómo manejar esto de una manera mucho mejor.

Estoy pensando en crear un filtro personalizado, pero cuál es su opinión al respecto (en caso afirmativo, proporcione un código de muestra para lograrlo).

Tu ayuda es apreciada.

Gracias.

Respuestas a la pregunta(4)

Su respuesta a la pregunta