18. あるfunctionを改善する

簡単  - accepted / - tried

// itemsの要素は三つ以上のプロパティをもつ

let items = [
  {color: 'red', type: 'tv', age: 18}, 
  {color: 'silver', type: 'phone', age: 20},
  {color: 'blue', type: 'book', age: 17}
] 

const 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. excludeItems()はどんな働き?
  2. 予想通りに動いているのか?
  3. 上記の実装の時間複雑性は?
  4. 改善できるのか

補足

BFE.devのジャッジは結果だけを見る、時間とかは測らない。最善を尽くした実装を送信してください。

常にもっといい方法を求めよう。

(3)
(214)