18. Improve a function

easy  - accepted / - tried

// Given an input of array, // which is made of items with >= 3 propertieslet items = [  {color: 'red', type: 'tv', age: 18},   {color: 'silver', type: 'phone', age: 20},  {color: 'blue', type: 'book', age: 17}] // an exclude array made of key value pairconst excludes = [   {k: 'color', v: 'silver'},   {k: 'type', v: 'tv'},   ...] function excludeItems(items, excludes) {   excludes.forEach( pair => {     items = items.filter(item => item[pair.k] === item[pair.v])  })   return items} 
  1. What does this function excludeItems do?
  2. Is this function working as expected ?
  3. What is the time complexity of this function?
  4. How would you optimize it ?

note

we only judge by the result, not the time cost. please submit the best approach you can.

What is time & space complexity of your approach?

(222)